IP Library Granted Patent US 8,141,056
Granted Patent B2
US 8,141,056 · App. 12/061,874 · Granted Mar 20, 2012

Just-in-time dynamic instrumentation

Assignee: International Business Machines Corporation
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,141,056
App. No.
12/061,874
Granted
Mar 20, 2012
Kind
B2
Abstract

Just-in-time dynamic instrumentation of a running software system may be achieved by registering one or more instrumentation probe handlers in an inactive state wherein the probe handlers reside in a memory space associated with the software system but are not instrumented into the software system. The probe handlers may each have one or more probe handler tags representing categories to which the probe handlers have been assigned. Tag query requests are periodically received and processed in order to provide information to a caller about registered probe handlers associated with a probe handler tag specified in the tag query request. A probe handler activation request can be made by specifying a probe handler or a probe handler tag. The request can be processed by placing the specified probe handler, or probe handlers associated with the tag, in an active state. The software system thus becomes dynamically instrumented to execute the probe handler(s) as part of the software system's execution flow. The activated probe handler(s) may be returned to the inactive state in response to a probe handler deactivation request specifying a probe handler or a probe handler tag.

Claims (48)

1. A method for just-in-time dynamic instrumentation of a running software system, comprising:

registering one or more instrumentation probe handlers in an inactive state wherein said probe handlers reside in a memory space associated with said software system but are not instrumented into said software system;

said one or more probe handlers each having one or more probe handler tags representing categories to which said one or more probe handlers have been assigned;

processing a tag query request by providing information about registered probe handlers associated with a probe handler tag specified in said tag query request;

processing a probe handler activation request specifying a probe handler or a probe handler tag by placing the specified probe handler, or probe handlers associated with said tag, in an active state by instrumenting said software system to execute said probe handler(s) as part of said software system's execution flow; and

returning said activated probe handler(s) to said inactive state in response to a probe handler deactivation request specifying a probe handler or a probe handler tag.

2. A method in accordance with claim 1 wherein said tags represent one or more of a functional area to which said probe handlers belong or users or groups that utilize said probe handlers.

3. A method in accordance with claim 1 wherein said activation request and said deactivation request are made by specifying said tags, and wherein processing of said activation request and said deactivation request comprises implementing tag queries to identify probe handlers associated with said tags.

4. A method in accordance with claim 1 wherein said tag queries, said activation request and said deactivation request are received via a probe handler interface.

5. A method in accordance with claim 4 wherein said probe handler interface is adapted to be invoked by application callers residing in a memory space that is the same as or different from a memory space in which said target software system resides.

6. A method in accordance with claim 5 wherein said target software system and said instrumentation system are part of an operating system running in a kernel memory space, said probe handler interface is a system call interface, and said application callers comprise user applications running in a user memory space.

7. A data processing system programmed for just-in-time dynamic instrumentation of a running software system, comprising:

a data processing resource;

a memory space containing said software system;

probe handler register-inactive logic adapted to register one or more instrumentation probe handlers in an inactive state wherein said probe handlers reside in said memory space but are not instrumented into said software system;

said one or more probe handlers each having one or more probe handler tags representing categories to which said one or more probe handlers have been assigned;

tag query logic adapted to process a tag query request by providing information about registered probe handlers;

probe handler activation logic adapted to implement a probe handler activation request by placing one or more probe handlers in an active state by instrumenting said software system to execute said probe handler(s) as part of said software system's execution flow;

a probe handler deactivation function adapted to implement a probe handler deactivation request by returning one or more activated probe handler(s) to said inactive state.

8. A system in accordance with claim 7 wherein said tags represent one or more of a functional area to which said probe handlers belong or users or groups that utilize said probe handlers.

9. A system in accordance with claim 7 wherein said wherein said activation request and said deactivation request are made by specifying said tags, and wherein processing of said activation request and said deactivation request comprises implementing tag queries to identify probe handlers associated with said tags.

10. A system in accordance with claim 7 wherein said tag queries, said activation request and said deactivation request are received via a probe handler interface.

11. A system in accordance with claim 7 wherein said probe handler interface is adapted to be invoked by application callers residing in a memory space that is the same as or different from said memory space in which said target software system resides.

12. A system in accordance with claim 11 wherein said target software system and said instrumentation system are part of an operating system running in a kernel memory space, said probe handler interface is a system call interface, and said application callers comprise user applications running in a user memory space.

13. A computer program product, comprising:

one or more machine readable media;

programming logic provided by said machine readable media for programming a data processing platform to support just-in-time dynamic instrumentation of said running software system, as by:

registering one or more instrumentation probe handlers in an inactive state wherein said probe handlers reside in a memory space associated with said software system but are not instrumented into said software system;

said one or more probe handlers each having one or more probe handler tags representing categories to which said one or more probe handlers have been assigned;

processing a tag query request by providing information about registered probe handlers associated with a probe handler tag specified in said tag query request;

processing a probe handler activation request specifying a probe handler or a probe handler tag by placing the specified probe handler or probe handlers associated with said tag in an active state by instrumenting said software system to execute said probe handler(s) as part of said software system's execution flow; and

returning said activated probe handler(s) to said inactive state in response to a probe handler deactivation request specifying a probe handler or a probe handler tag.

14. A computer program product in accordance with claim 13 wherein said tags represent one or more of a functional area to which said probe handlers belong or users or groups that utilize said probe handlers.

15. A computer program product in accordance with claim 13 wherein said activation request and said deactivation request are made by specifying said tags, and wherein processing of said activation request and said deactivation request comprises implementing tag queries to identify probe handlers associated with said tags.

16. A computer program product in accordance with claim 13 wherein said tag queries, said activation request and said deactivation request are received via a probe handler interface.

17. A computer program product in accordance with claim 16 wherein said probe handler interface is adapted to be invoked by application callers residing in a memory space that is the same as or different from a memory space in which said target software system resides.

18. A computer program product in accordance with claim 17 wherein said target software system and said instrumentation system are part of an operating system running in a kernel memory space, said probe handler interface is a system call interface, and said application callers comprise user applications running in a user memory space.

19. A computer program product, comprising:

one or more machine readable media;

programming logic provided by said machine readable media for programming a data processing platform to support just-in-time dynamic instrumentation of said running software system, as by:

registering one or more instrumentation probe handlers in an inactive state wherein said probe handlers reside in a memory space associated with said software system but are not instrumented into said software system;

said one or more probe handlers each having plural probe handler tags representing categories to which said one or more probe handlers have been assigned;

processing a tag query request by providing information about registered probe handlers associated with a probe handler tag specified in said tag query request;

processing a probe handler activation request specifying a probe handlers or a probe handler tag by placing the specified probe handler or probe handlers associated with said tag in an active state by instrumenting said software system to execute said probe handler(s) as part of said software system's execution flow;

returning said activated probe handler(s) to said inactive state in response to a probe handler deactivation request specifying a probe handler or a probe handler tag;

said activation request and said deactivation request being received via a probe handler interface that can be invoked by application callers; and

said target software system and said instrumentation system being part of an operating system running in a kernel memory space, said probe handler application program interface being a system call interface, and said application callers comprising user applications running in a user memory space.

20. A computer program product in accordance with claim 19 wherein said tags represent one or more of a functional area to which said probe handlers belong or users or groups that utilize said probe handlers.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT NUMBERS 10342096;10671117; 10716375; 10716376;10795407;10795408; AND 10827591 PREVIOUSLY RECORDED AT REEL: 58314 FRAME: 657. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 29, 2024
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 068066/0103 →
CHANGE OF NAME Recorded Dec 6, 2021
From: RAKUTEN, INC.
To: RAKUTEN GROUP, INC.
Reel/Frame 058314/0657 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: RAKUTEN, INC.
Reel/Frame 035176/0391 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2008
From: PRASADARAO, AKULAVENKATAVARA
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 020749/0905 →
Continuity (1)
Related Publication 20090254889A1 · Oct 8, 2009