Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
First Claim
1. A method for monitoring performance of a program being executed using symmetric multiprocessing (SMP) functionality comprising:
- executing a native code routine;
executing a first thread of the native code routine on a first symmetric multiprocessing (SMP) processor;
ascertaining first profile information, wherein the first profile information is processor profile information for the first SMP processor that identifies metrics associated with the execution of the first thread on the first SMP processor and is maintained by an operating system kernel;
updating first thread profile information, maintained by a profiler application, with the first profile information;
executing the first thread of the native code routine on a second SMP processor;
ascertaining second profile information, wherein the second profile information is processor profile information for the second SMP processor that identifies metrics associated with the execution of the first thread on the second SMP processor and is maintained by the operating system kernels; and
updating the first thread profile information, maintained by the profiler application, with the second profile information.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system for monitoring performance of a program using global metric variables to provide the support in an symmetric multiprocessor (SMP) system. A Java virtual machine (Jvm) either calls the profiler whenever bytes are allocated or provides an interface to allow the profiler to determine the value of the change in the metric for the current thread. The profiler then applies the changes to a metric for the current thread. Alternatively, per processor data areas are maintained for storing per processor metric values. Whenever a thread switch occurs or there is a request for the metric on a specified thread, an operating system kernel updates the thread level metric values with changes in the values per processor metrics.
131 Citations
43 Claims
-
1. A method for monitoring performance of a program being executed using symmetric multiprocessing (SMP) functionality comprising:
-
executing a native code routine;
executing a first thread of the native code routine on a first symmetric multiprocessing (SMP) processor;
ascertaining first profile information, wherein the first profile information is processor profile information for the first SMP processor that identifies metrics associated with the execution of the first thread on the first SMP processor and is maintained by an operating system kernel;
updating first thread profile information, maintained by a profiler application, with the first profile information;
executing the first thread of the native code routine on a second SMP processor;
ascertaining second profile information, wherein the second profile information is processor profile information for the second SMP processor that identifies metrics associated with the execution of the first thread on the second SMP processor and is maintained by the operating system kernels; and
updating the first thread profile information, maintained by the profiler application, with the second profile information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for monitoring performance of a program being executed by a symmetric multiprocessing (SMP) functionality comprising:
-
launching a current thread of a native code routine on a first symmetric multiprocessing (SMP) processor;
stopping a last thread on the first SMP processor;
accessing a first SMP processor data area;
retrieving first SMP processor accumulated profile information;
retrieving first SMP processor last accumulated profile information;
ascertaining first profile information from the first SMP processor accumulated profile information and the first SMP processor last accumulated profile information;
updating first thread profile information with the first profile information;
setting first SMP processor last accumulated profile information in the first SMP processor data area equal to the first SMP processor accumulated profile information; and
starting the first thread on the first SMP processor. - View Dependent Claims (16)
-
-
17. A method for monitoring performance of a program being executed by a symmetric multiprocessing (SMP) functionality comprising:
-
receiving a request for current thread profile information;
retrieving SMP processor accumulated profile information from each SMP processor'"'"'s data area;
retrieving SMP processor last accumulated profile information from each processor'"'"'s data area;
ascertaining profile information from the SMP processor accumulated profile information and the SMP processor last accumulated profile information for each thread running on a processor;
updating thread profile information with the profile information for each thread running on a processor;
setting each SMP processor last accumulated profile information in a respective SMP processor'"'"'s data area equal to the SMP processor accumulated profile information for that SMP processor; and
transferring the thread profile information to the requester. - View Dependent Claims (18)
-
-
19. A data processing system for monitoring performance of a program being executed by symmetric multiprocessing (SMP) functionality comprising:
-
executing means for executing a native code routine;
executing means for executing a first thread of the native code routine on a first symmetric multiprocessing (SMP) processor;
ascertaining means for ascertaining the profile information, wherein the first profile information is processor profile information for the first SMP processor that, identifies metrics associated with the execution of the first thread on the first SMP processor and is maintained by an operating system kernel;
updating means for updating first thread profile information, maintained by a profiler application, with the first profile information;
executing means for executing the first thread of the native code routine on a second SMP processor;
ascertaining means for ascertaining second profile information, wherein the second profile information is processor profile information for the second SMP processor that identifies metrics associated with the execution of the first thread on the second SMP processor and is maintained by the operating system kernel; and
updating means for updating first thread profile information, maintained by the profiler application, with the second profile information. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computer program product for monitoring performance of a program being executed by a symmetric multiprocessing (SMP) functionality comprising:
-
executing instructions for executing a native code routine;
executing instruction for executing a first thread of the native code routine on a first symmetric multiprocessing (SMP) processor;
ascertaining instructions for ascertaining first profile information, wherein the first profile information is processor profile information for the first SMP processor that identifies metrics associated with the execution of the first thread on the first SMP processor and is maintained by an operating system kernel;
updating instructions for updating first thread profile information, maintained by a profiler application, with the first profile information;
executing instructions for executing the first thread of the native code routine on a second SMP processor;
ascertaining instructions for ascertaining second profile information, wherein the second profile information is processor profile information for the second SMP processor that identifies metrics associated with the execution of the first thread on the second SMP processor and is maintained by the operating system kernel; and
updating instructions for updating first thread profile information, maintained by the profiler application, with the second profile information. - View Dependent Claims (32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. A method of monitoring performance of a program being executed by a symmetric multiprocessing (SMP) system, comprising:
-
using an operating system kernel to maintain a first set of metrics associated with execution of a thread on a plurality of processors in the SMP system, wherein per-processor data areas are allocated by the operating system kernel, and associated with corresponding processors in the plurality of processors, to store metrics for the corresponding processors, and wherein the first set of metrics are at a processor-level;
using a profiler application to maintain a second set of metrics associated with threads of execution of the program, wherein the second set of metrics are at a thread level;
updating the second set of metrics based on the first set of metrics in response to a request from a requestor to update the second set of metrics to thereby generate an update second set of metrics; and
providing the updated second set of metrics to the requestor.
-
Specification