Minimizing profiling-related perturbation using periodic contextual information
AssigneeInternational Business Machines Corporation
InventorsRobert Francis Berry, Frank Eliot Levine
Life of this patent
Estimating the term…
Abstract
A method and system for monitoring performance of a program is provided. A trace record containing a call stack associated with the program is periodically generated. An occurrence of a selected event or a timer interrupt is detected, and in response, an execution context sample is obtained that contains a process identifier, a thread identifier, a program counter, and a stack pointer. A trace record containing the execution context sample data is generated. During post-processing, the execution context samples are compared with a call stack to identify the routine associated with the execution sample data.
Claims22
A method for monitoring performance of a program, the method comprising the steps of:
- generating a trace record comprising a call stack associated with the program;
- detecting an occurrence of a selected event or timer interrupt;
- in response to a detection of the selected event or the timer interrupt, obtaining execution context sample data;
- generating a trace record comprising the execution context sample data;
- comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program;
- and
- identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
A data processing system for monitoring performance of a program, the data processing system comprising:
- first generating means for generating a trace record comprising a calls stack associated with the program;
- detecting means for detecting an occurrence of a selected event or a timer interrupt;
- obtaining means for obtaining, in response to a detection of the selected event or the timer interrupt, execution context sample data;
- second generating means for generating a trace record comprising the execution context sample data;
- comparing means for comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program;
- and
- identifying means for identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
A computer program product in a computer-readable medium for use in a data processing system for monitoring performance of a program, the computer program product comprising:
- first instructions for generating a trace record comprising a call stack associated with the program;
- second instructions for detecting an occurrence of a selected event or a timer interrupt;
- third instructions for obtaining, in response to a detection of the selected event or the timer interrupt, execution context sample data;
- fourth instructions for generating a trace record comprising the execution context sample data;
- fifth instructions for comparing the execution context sample data to calibration call slack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program;
- and
- instructions for identifying a routine associated With the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
A method for monitoring performance of a program, the method comprising tire steps of:
- generating a trace record comprising a call stack associated with the program;
- detecting an occurrence of a timer interrupt;
- in response to a detection of the timer interrupt, obtaining execution context sample data;
- generating a trace record comprising the execution context sample data;
- comparing the execution context sample data to calibration call stack data in order to match full call stack context, wherein calibration call stack data includes context derived from call stack unwinds of a previous execution of said program;
- and
- identifying a routine associated with the execution context sample data based on a comparison of the execution context sample data to the calibration call stack data.
Dependencies are inferred from the claim text.