Time Based Context Sampling of Trace Data with Support for Multiple Virtual Machines
First Claim
1. A method, in a data processing system, for performing time-based context sampling for profiling an execution of computer code in the data processing system, the method comprising:
- in response to the occurrence of an event, waking a plurality of sampling threads associated with a plurality of executing threads executing on processors of the data processing system;
determining, by a processor of the data processing system, for each sampling thread, an execution state of a corresponding executing thread with regard to one or more virtual machines of interest;
determining, by the processor, for each sampling thread, based on the execution state of the corresponding executing thread, whether to retrieve trace information from a virtual machine associated with the corresponding executing thread; and
for each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine associated with the corresponding executing thread, retrieving the trace information from the virtual machine and storing the trace information in a storage device associated with the data processing system.
1 Assignment
0 Petitions
Accused Products
Abstract
Mechanisms for time based context sampling of trace data with support for multiple virtual machines are provided. In response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads executing on processors of a data processing system are awakened. For each sampling thread, an execution state of a corresponding executing thread is determined with regard to one or more virtual machines of interest. For each sampling thread, based on the execution state of the corresponding executing thread, a determination is made whether to retrieve trace information from a virtual machine of interest associated with the corresponding executing thread. For each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine of interest associated with the corresponding executing thread, the trace information is retrieved from the virtual machine.
132 Citations
20 Claims
-
1. A method, in a data processing system, for performing time-based context sampling for profiling an execution of computer code in the data processing system, the method comprising:
-
in response to the occurrence of an event, waking a plurality of sampling threads associated with a plurality of executing threads executing on processors of the data processing system; determining, by a processor of the data processing system, for each sampling thread, an execution state of a corresponding executing thread with regard to one or more virtual machines of interest; determining, by the processor, for each sampling thread, based on the execution state of the corresponding executing thread, whether to retrieve trace information from a virtual machine associated with the corresponding executing thread; and for each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine associated with the corresponding executing thread, retrieving the trace information from the virtual machine and storing the trace information in a storage device associated with the data processing system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program product comprising a computer recordable medium having a computer readable program recorded thereon, wherein the computer readable program, when executed on a computing device, causes the computing device to:
-
wake, in response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads; determine for each sampling thread, an execution state of a corresponding executing thread with regard to one or more virtual machines of interest; determine for each sampling thread, based on the execution state of the corresponding executing thread, whether to retrieve trace information from a virtual machine associated with the corresponding executing thread; and for each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine associated with the corresponding executing thread, retrieve the trace information from the virtual machine and storing the trace information in a storage device associated with the computing device. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. An apparatus, comprising:
-
a processor; and a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to; wake, in response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads; determine for each sampling thread, an execution state of a corresponding executing thread with regard to one or more virtual machines of interest; determine for each sampling thread, based on the execution state of the corresponding executing thread, whether to retrieve trace information from a virtual machine associated with the corresponding executing thread; and for each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine associated with the corresponding executing thread, retrieve the trace information from the virtual machine and storing the trace information in a storage device associated with the computing device.
-
Specification