Patent US2729136A successfully refreshed from Google Patents.
Patent US3096827A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5355487A Expired / Lapsed US ⏱️ 0.0 years remaining

Non-invasive trace-driven system and method for computer system profiling

Assignee: International Business Machines Corp
•
Filing: 1993-07-23
•
Granted: 1994-10-11
•
Expires: 2013-07-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention disclosed herein is a system and method for comprehensive, non-invasive profiling of a processor whereby feedback is provided to a programmer of the execution dynamics of a program. In a preferred embodiment a partial real-time reduction is provided of selected trace events employing the environment's trace facility, and a post-processing function is then performed. A trace hook is provided in the environment's periodic clock routine which captures the address to be returned to following this timer's interrupt, and further captures the address of the caller of the routine represented by the first address. The frequency of occurrences of the first address is collected and correlated to various virtual address spaces and corresponding subroutine offsets within those virtual address spaces. By employing the assembly and source code listing of programs, the address frequencies are then correlated back to specific instructions, and from information in the assembly listing accumulated time is further correlated against specific lines of source code. A profile is generated indicating the amount of time spent by the processor in various processes, kernel, shared library, and user spaces, and subroutines correlated to the lines of source code for negligible additional processor run time.

Inventors

  • 👤 Thomas W. Keller
  • 👤 Robert J. Urquhart

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 01:57
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/30; G06F11/34; G06F11/3409; G06F11/3419; G06F11/3466; G06F2201/00; G06F2201/815; G06F2201/86; G06F2201/865; G06F2201/88

Claims Analysis

Total Claims: 4
Claim 1
Independent Claim 193 words
In a computer system having an operating system kernel in a program executing multiple processes, a method for use during execution of said multiple processes in profiling said multiple processes, comprising: inserting with said system a trace hook mechanism in a periodic clock routine of said operating system kernel; inserting with said system additional trace hook mechanisms in said operating system kernel sufficient to initialize and maintain process identity, name, and current running process correspondences; generating with said system trace events in response to said trace hook and additional trace hook mechanisms at predetermined time intervals; generating with said system trace events in response to changes in process state at times of occurrence of said changes in process state; creating and maintaining with said system during said profiling a trace buffer as a function of said trace events comprised of: a plurality of fields of program counter hook data, each corresponding to a different <current executing process identity, program counter value> tuple and a count of the number of repetitions of each said instance; and a plurality of fields maintaining correspondences between process names, identities, and said fields of program counter hook data.
Claim 2
Dependent Claim 193 words
In a computer system having an operating system kernel in a program executing multiple processes, a method for use during execution of said multiple processes in profiling said multiple processes, comprising: inserting with said system a trace hook mechanism in a periodic clock routine of said operating system kernel; inserting with said system additional trace hook mechanisms in said operating system kernel sufficient to initialize and maintain process identity, name, and current running process correspondences; generating with said system trace events in response to said trace hook and additional trace hook mechanisms at predetermined time intervals; generating with said system trace events in response to changes in process state at times of occurrence of said changes in process state; creating and maintaining with said system during said profiling a trace buffer as a function of said trace events comprised of: a plurality of fields of program counter hook data, each corresponding to a different <current executing process identity, program counter value> tuple and a count of the number of repetitions of each said instance; and a plurality of fields maintaining correspondences between process names, identities, and said fields of program counter hook data.
Claim 3
Dependent Claim 30 words
The method of claim 1 further comprising in a postprocessing interval the steps of: generating with said system correlations of program counter frequency counts to a plurality of programming constructs.
Claim 4
Dependent Claim 27 words
The method of claim 2 wherein said constructs comprise at least one from a group of: process; space identity; routine; source line of code; and assembly instruction.

References Cited (Backward Citations)

US4845615A Cited
US4937740A Cited
US5047919A Cited
US4866665A Cited
US4969088A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1997-10-10 1998-04-11 1998-10-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2001-10-10 2002-04-11 2002-10-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2005-10-10 2006-04-11 2006-10-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag