General purpose emit for use in value profiling
AssigneeInternational Business Machines Corporation
InventorsRichard William Doing, Venkat Rajeev Indukuru, Alexander Erik Mericas, Mauricio Jose Serrano, Zhong Liang Wang
Life of this patent
Estimating the term…
Abstract
An information handling system includes a memory, a processor, and an instruction tracking unit. The processor executes program code and, while the program code executes, the instruction tracking unit decodes a multi-purpose no-op instruction within the program code. In turn, the instruction tracking unit sends an interrupt to the processor, which invokes a profiling module to collect and store profiling data in a profiling buffer.
Claims17
An information handling system comprising:
- a memory to store program code;
- a processor that executes the program code on a first processing thread;
- an instruction tracking unit that decodes a multi-purpose no-op instruction included in the program code and sends an interrupt to the processor in response to decoding the multi-purpose no-op instruction;
- in response to receiving the interrupt, invoking by the processor a profiling module to collect profiling data and store the profiling data in a profiling buffer;
- and
- in response to detecting that the profiling buffer is full, sending by the first processing thread a subsequent interrupt to a second processing thread that invokes the second processing thread to retrieve the profiling data from the profiling buffer.
A machine-implemented method comprising:
- executing, by a processor, program code on a first processing thread;
- receiving a multi-purpose no-op instruction included in the program code, wherein the multi-purpose no-op instruction is devoid from execution by an execution unit;
- adjusting a no-op instruction counter value in response to receiving the multi-purpose no-op instruction;
- invoking an interrupt based upon the adjusted no-op instruction counter value;
- collecting profiling data and storing the profiling data in a profiling buffer in response to the invoked interrupt;
- detecting, by the first processing thread, that the profiling buffer is full;
- and
- sending, in response the detecting, a subsequent interrupt from the first processing thread to a second processing thread that invokes the second processing thread to retrieve the profiling data from the profiling buffer.
A machine-implemented method comprising:
- identifying an instrumentation point within a program code;
- including a multi-purpose no-op instruction in the program code at the identified instrumentation point, wherein the multi-purpose no-op instruction is adapted to invoke one of a plurality of events based upon a number of times that that the multi-purpose no-op instruction is decoded;
- storing the program code with the included multi-purpose no-op instruction;
- including a profiling module in the program code that, in response to one of the plurality of events being an interrupt, collects profiling data from one or more registers and stores the profiling data in a profiling buffer;
- executing, by a processor, the program code on a first processing thread;
- detecting, by the first processing thread, that the profiling buffer is full;
- and
- sending, in response the detecting, a subsequent interrupt from the first processing thread to a second processing thread that invokes the second processing thread to retrieve the profiling data from the profiling buffer.
Dependencies are inferred from the claim text.