Method and system for periodic trace sampling using a mask...

Data processing: software development – installation – and managem – Software program development tool – Testing or debugging

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C717S128000, C717S124000, C717S126000, C717S129000, C717S130000, C717S131000, C714S038110, C714S049000, C714S045000, C712S233000, C712S234000, C712S236000

Reexamination Certificate

active

06728949

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to an improved data processing system and, in particular, to a method and apparatus for optimizing performance in a data processing system. Still more particularly, the present invention provides a method and apparatus for a software program development tool for enhancing performance of a software program through software profiling.
2. Description of Related Art
In analyzing and enhancing performance of a data processing system and the applications executing within the data processing system, it is helpful to know which software modules within a data processing system are using system resources. Effective management and enhancement of data processing systems requires knowing how and when various system resources are being used. Performance tools are used to monitor and examine a data processing system to determine resource consumption as various software applications are executing within the data processing system. For example, a performance tool may identify the most frequently executed modules and instructions in a data processing system, or may identify those modules which allocate the largest amount of memory or perform the most I/O requests. Hardware performance tools may be built into the system or added at a later point in time. Software performance tools also are useful in data processing systems, such as personal computer systems, which typically do not contain many, if any, built-in hardware performance tools.
One known software performance tool is a trace tool. A trace tool may use more than one technique to provide trace information that indicates execution flows for an executing program. One technique keeps track of particular sequences of instructions by logging certain events as they occur, so-called event-based profiling technique. For example, a trace tool may log every entry into, and every exit from, a module, subroutine, method, function, or system component. Alternately, a trace tool may log the requester and the amounts of memory allocated for each memory allocation request. Typically, a time-stamped record is produced for each such event. Corresponding pairs of records similar to entry-exit records also are used to trace execution of arbitrary code segments, starting and completing I/O or data transmission, and for many other events of interest.
In order to improve performance of generated code, it is often necessary to determine where time is being spent by the processor in executing code, such efforts being commonly known in the computer processing arts as locating “hot spots.” Ideally, one would like to isolate such hot spots at the instruction level and/or line of source code level in order to focus attention on areas which might benefit most from improvements to the code.
Isolating such hot spots to the instruction level permits compiler writers to find significant areas of suboptimal code generation at which they may thus focus their efforts to improve code generation efficiency. Another potential use of instruction level detail is to provide guidance to the designer of future systems. Such designers employ profiling tools to find characteristic code sequences and/or single instructions that require optimization for the available software for a given type of hardware.
Another trace technique involves periodically sampling a program's execution flows to identify certain locations in the program in which the program appears to spend large amounts of time. This technique is based on the idea of periodically interrupting the application or data processing system execution at regular intervals, so-called sample-based profiling. At each interruption, information is recorded for a predetermined length of time or for a predetermined number of events of interest. For example, the program counter of the currently executing thread, which is a process that is part of the larger program being profiled, may be recorded during the intervals. These values may be resolved against a load map and symbol table information for the data processing system at post-processing time, and a profile of where the time is being spent may be obtained from this analysis.
A programmer or software analyst may often desire to qualify the profiling of an application through various types of conditions that may exist within the execution environment of the application program being profiled. For example, a programmer may desire to limit the generation of trace data so that trace data is only generated during periods of time in which a specific condition is active. This type of granularity would allow a programmer to obtain a more focused picture of the execution conditions within the profiled application.
Therefore, it would be advantageous to provide a method and apparatus that reduces the amount of data generated during tracing, thereby reducing system perturbation. It would be particularly advantageous to provide the ability to selectively enable and disable profiling of a data processing system according to various execution conditions within a profiled application.
SUMMARY OF THE INVENTION
A method and system for monitoring execution performance of a program is provided. Profiling functionality may be qualified by setting various qualifying flags at the request of a user. These qualifying flags may be used to limit the amount of trace data being generated or processed, thereby providing a more focused picture of an application's execution to the user. One or more trace qualifying conditions are selectable by a user and are used during a profiling phase of application execution or during a post-processing phase of analyzing the application execution. During a profiling phase, an occurrence of a selected event or a timer interrupt is detected, and a determination is made as to whether a trace qualifying condition has been previously selected. In response to a determination that a trace qualifying condition has been selected, a trace record is then generated. During a post-processing phase, a trace record is read that contains a trace condition mask that stores the trace qualifying conditions that were active when the trace record was generated. The trace record is further processed in response to a determination that the trace condition mask has at least one active user-specified trace qualifying condition.


REFERENCES:
patent: 3707725 (1972-12-01), Dellheim
patent: 4520441 (1985-05-01), Bandoh et al.
patent: 4571677 (1986-02-01), Hirayama et al.
patent: 4703417 (1987-10-01), Morganti et al.
patent: 4841439 (1989-06-01), Nishikawa et al.
patent: 4866599 (1989-09-01), Morganti et al.
patent: 4868738 (1989-09-01), Kish et al.
patent: 5003458 (1991-03-01), Yamaguchi et al.
patent: 5047919 (1991-09-01), Sterling et al.
patent: 5355484 (1994-10-01), Record et al.
patent: 5355487 (1994-10-01), Keller et al.
patent: 5359608 (1994-10-01), Belz et al.
patent: 5386565 (1995-01-01), Tanaka et al.
patent: 5594904 (1997-01-01), Linnermark et al.
patent: 5611061 (1997-03-01), Yasuda
patent: 5613118 (1997-03-01), Heisch et al.
patent: 5673387 (1997-09-01), Chen et al.
patent: 5715440 (1998-02-01), Ohmura et al.
patent: 5737521 (1998-04-01), Kleber et al.
patent: 5764944 (1998-06-01), Hwang et al.
patent: 5768500 (1998-06-01), Agrawal et al.
patent: 5940871 (1999-08-01), Goyal et al.
patent: 5948112 (1999-09-01), Shimada et al.
patent: 5950009 (1999-09-01), Bortnikov et al.
patent: 6002872 (1999-12-01), Alexander, III et al.
patent: 6014742 (2000-01-01), Krick et al.
patent: 6018786 (2000-01-01), Krick et al.
patent: 6057839 (2000-05-01), Advani et al.
patent: 6145123 (2000-11-01), Torrey et al.
patent: 6182244 (2001-01-01), Bankemper et al.
Document-ID: JP 01277940 A,Title: Conditional Trace System Pubn-Date: Nov. 8, 1989, author: Takasaki et al.*
Title: A Trace Recovery: A Distributed Computing Application for Perturbation Tracking, author: Gannon et al, IEEE, Dec., 1994.*
Title: Performance analysis using a non-invasive instruction trace mechanism, IEEE, author: Sandon et al, 1997.*
International Business Ma

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and system for periodic trace sampling using a mask... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and system for periodic trace sampling using a mask..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and system for periodic trace sampling using a mask... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3236312

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.