IP Library Granted Patent US 8,627,294
Granted Patent B1
US 8,627,294 · App. 10/713,338 · Granted Jan 7, 2014

Method and apparatus for synchronization in a multiplexed arbitrary-action tracing framework

Inventor: Bryan M. Cantrill (San Francisco, CA)
Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,627,294
App. No.
10/713,338
Granted
Jan 7, 2014
Kind
B1
Abstract

A method for processing a probe including triggering the probe in an instrumented program, querying a global array to determine an execution control block associated with the probe, and executing the execution control block to obtain data.

Claims (49)

1. A method for processing a probe, comprising:

triggering the probe in an instrumented program;

querying a global array to determine an execution control block associated with the probe; and

executing the execution control block to obtain data,

wherein the execution control block is an element in a linked list which comprises:

a predicate defining a criterion for executing the execution control block;

a consumer state component defining information associated with a tracing consumer; and

an action defining the data to be obtained from the instrumented program at the probe.

2. A method of claim 1 , further comprising:

associating the probe with a probe identifier.

3. The method of claim 2 , wherein the probe identifier is used to query the global array.

4. A method of claim 2 , further comprising:

associating the execution control block with the probe identifier.

5. The method of claim 1 , wherein the execution control block further comprises:

a pointer to a next execution control block.

6. The method of claim 1 , further comprising:

disabling an interrupt prior to executing the execution control block; and

enabling the interrupt when executing the execution control block is completed.

7. A method for removing an execution control block associated with a tracing consumer from a linked list executing in a system, wherein the linked list has a first pointer pointing to the execution control block and the execution control block has a next pointer, comprising:

updating the linked list such that the first pointer is updated to point to same location as the execution control block's next pointer, wherein the execution control block comprises:

a predicate defining a criterion for executing the execution control block,

a consumer state component defining information associated with a tracing consumer, and

an action defining the data to be obtained from the instrumented program at the probe;

issuing an empty cross-call and awaiting an acknowledgement from each processor in the system; and

freeing memory associated with the execution control block when the acknowledgement from each processor has been received.

8. The method of claim 7 , further comprising:

forcing a memory operation associated with updating the linked list to global visibility prior to issuing the empty cross-call.

9. The method of claim 7 , further comprising:

searching for the execution control block to remove using the consumer state component.

10. A system for tracing an instrumented program, comprising:

a processor; and

a memory configured by the processor to store:

the instrumented program comprising a first probe, wherein the first probe is identified using a first probe identifier, and

a first execution control block associated with the first probe comprising a first action to be performed when the first probe is triggered in the instrumented program,

wherein the first execution control block is an element in a linked list which comprises:

a predicate defining a criterion for executing the execution control block,

a consumer state component defining information associated with a tracing consumer, and

an action defining the data to be obtained from the instrumented program at the probe.

11. The system of claim 10 , wherein the memory is further configured by the processor to store:

a tracing consumer defining the action.

12. The system of claim 10 , wherein the memory is further configured by the processor to store:

a second execution control block associated with the first probe comprising a second action to be performed when the first probe is triggered in the instrumented program.

13. The system of claim 12 , wherein the memory is further configured by the processor to store:

a second probe, wherein the second probe is identified using a second probe identifier; and

a third execution control block associated with the second probe comprising a third action to be performed when the second probe is triggered in the instrumented program.

14. The system of claim 13 , wherein the memory is further configured by the processor to store:

a global array of pointers indexed using the first probe identifier and the second probe identifier.

15. The system of claim 10 , wherein the first execution control block further comprises:

a pointer to a next execution control block.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2003
From: CANTRILL, BRYAN M.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 014767/0336 →