A system provides mechanisms and techniques to retrieve trace data from a trace buffer residing in a data storage system. The software program operating on a processor within the data storage system operates in trace mode to produce trace data in the trace buffer upon occurrence of trace events. An event trace routine operates in response to a system call to access the trace buffer and return either a current value of a trace buffer pointer or the current trace buffer pointer as well as trace data read from the trace buffer beginning at a location and in an amount as specified in the system call to the event trace routine. The trace capture process can operate either within the data storage system or preferably on a remote host computer system to access trace data in the trace buffer in the data storage system by using the event trace routine. The trace capture process can periodically query the event trace routine with a frequency determined by an adaptive timing algorithm in order to detect the addition of trace data to the trace buffer. Upon detecting such a condition, the trace capture process can use the event trace routine to retrieve the trace data from the trace buffer. The trace capture process can also detect if trace data is written beyond the end of the trace buffer and can perform the proper sequence of trace data access operations using the event trace routine in order to provide continuous remote access to all trace data produced in the trace buffer.
A method of a speculative tracing, including defining the speculative tracing using a plurality of probes, firing at least one of the plurality of probes defined by the speculative tracing, allocating at least one instance of a first speculative buffer arranged to transfer data to a first principal buffer, if one of the plurality of probes comprises a first speculation function, and determining a first state value associated with the first speculative buffer.
A method and apparatus in a distributed processing environment for tracing events includes receiving a request to trace an event on a local processor, acquiring a sequence identifier associated with the local processor that associates the event with a chronological sequence of events on the local processor, storing the sequence identifier and information about the event in a local event trace associated with the local processor, providing the sequence identifer and information about the event to a remote processor for storage in a remote event trace. Consolidating the event traces from multiple processors into a single chronological event trace includes accessing a local event trace having one or more local trace events associated with the local processor, identifying a trace event entry having a local sequence identifier and referencing a remote processor, accessing a remote event trace associated with the remote processor and having a remote trace event entry matching the local sequence identifier, comparing the remote trace event entry with the local sequence identifier and one or more local trace events in the local event trace, and inserting the remote trace event entry into the local event trace based upon the comparison.
A method of tracing program counter activity in a data processor periodically transmits a program counter sync point including the current program counter address. Between sync points the program counter address is indicated by a program counter offset relative to the last program counter sync point. The program counter offset is sent as integral number of sections of a predetermined number of bits. Program counter sync points are transmitted often enough so that the program counter offset requires at most one less section than the program counter address.
A method of tracing program counter activity in a data processor periodically transmits a program counter sync point including the current program counter address. Between sync points the program counter address is indicated by a program counter offset relative to the last program counter sync point. The program counter offset is sent as integral number of sections of a predetermined number of bits. Program counter sync points are transmitted often enough so that the program counter offset requires at most one less section than the program counter address.
The present invention provides a system, method, and program product for understanding, analyzing and troubleshooting performance issues in a data storage environment. More specifically, this invention is a system and method for preparing a trace of workload data for analysis by splitting information related to components on which the workload is experienced and by information type.