Method and apparatus for speculative tracing

Share
Save

Share On Facebook Share On Twitter Share By Email
Save Item
Add to
my lists

Filing Information

  • Patent Number: US7194731
  • Application Number: US10713406
  • Filing date: 11/14/2003
  • Issue date: 03/20/2007
  • Predicted expiration date: 05/16/2025
  • Patent term adjustment: 549
Explore Your Innovation Network™ for an introduction to:

Innovation Network Your First Name:
Last Name:
 
Already a member? Sign In
  • U.S. Classifications: 717/128  · 700/5  · 717/130  ·
  • International Classifications: G06F940 · G06F1740 ·
21 Claims, 5 Drawings


Abstract

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.

References Cited

U.S. Patent Documents

Document NumberAssigneesInventorsIssue/Pub Date
US6467083* NEC Corporation Yamashita Oct 2002
US6813731* EMC Corporation Zahavi et al. Nov 2004
US6836861* Broadcom Corporation Chen et al. Dec 2004
US7047521* LynoxWorks, Inc. Bunnell May 2006
* cited by examiner

Other Publications

Techniques for Efficient Inline Tracing on a Shared-Memory Multiprocessor Susan J. Eggers, David H. Keppel, Eric J. Koldinger, and Henry M. Levy. University of Washington.*
Improving Trace Cache Effectiveness with Branch Promotion and Trace Packing. Sanjay Jeram Patel, Marius Evers, Yale N. Patt. The University of Michigan.*
Tamches, Ariel and Miller, Barton P; Fine-Grained Dynamic Instrumentation of Commodity Operating System Kernels; [Online]; http://www.usenix.org/publications/library/proceedings/osdi99/full—papers/tamches/tamches.pdf, Published Feb. 1999.
Murayama, John; “Performance Profiling Using TNF”; [Online]; http://developers.sun.com/solaris/articles/tnf.html, Jul. 2001.
Lorch, Jacob R. and Smith, Alan J.; “The Vtrace Tool: Building a system Tracer for Windows NT and Windows 2000”; [Online] http://msdn.microfost.com/msdnmag/issues/1000/Vtrace/default.aspx, Oct. 2000.
“Chapter 10. The Generalized Trace Facility (GTF)”; [Online]; http://publib.boulder.ibm.com/cgi-bin/bookmgr/BOOKS/IEA2V100/CCONTENTS, Jan. 2001.
Mirgorodskii, Alex; “The Path to Portable Kemel Instrumentation: The Keminst API”; http://www.dyninst.org/mtg2003/slides/KeminstAPI.pdf, Apr. 2003.
Richard Moore, et al.; “IBM Dynamic Probes”; http://www-124.ibm.com/developerworks/opensource/linux/projects/dprobes/README, 2000.
K. Yaghmour et al.; “Measuring and Characterizing System Behavior Using Kemel-Level Event Logging”; Proceedings of the 2000 USENIX Annual Technical Conference; Jun. 18-23, 2000, San Diego, California, USA.
* cited by examiner

Referenced By

The current document is not referenced by other documents.

Patent Family

The current document is not in a family.

Read Patent

Read patent

Independent Claims | See all claims (21)

  1. 1. A method for tracing of a program, comprising: defining a plurality of probes to trace the program; allocating a first speculative buffer using one of the plurality of probes, wherein the first speculative buffer is associated with a first processor; encountering one of the plurality of probes during tracing of the program; executing an action in the encountered probe to obtain data associated with the program; storing the data in the first speculative buffer; committing the data to a first principal buffer from the first speculative buffer based on a state value assocaited with the tracing of the program, if one of the plurality of probes comprising a commit function is encountered; discarding the data in the first speculative buffer based on the state value, if one of the plurality of probes comprising a discard function is encountered; and evaluating the data transferred to the first principal buffer.
  2. 10. A system for tracing using a tracing framework, comprising: a plurality of probes executing on the tracing framework, wherein each of the plurality of probes is associated with a speculation; a first principal buffer configured to store data from the tracing framework and associated with a first processor, wherein data is traced from the first processor using one of the plurality of probes; and a first speculative buffer associated with the first principal buffer and configured to transfer data to the 1st principal buffer, wherein the first speculative buffer is allocated using one of the plurality of probes, and wherein the data traced from the first processor is stored in the first speculative buffer; and wherein the data from the 1st speculative buffer is committed to the first principal buffer if one of the plurality of probes comprising a commit function is encountered; wherein the data from the 1st speculative buffer is discarded if one of the plurality of probes comprising a discard function is encountered; and wherein a state value associated with the speculation is updated upon firing at least one of the plurality of probes.
  3. 21. A computer system for tracing a program comprising: a first processor; a memory; a storage device; and software instructions stored in the memory for enabling the computer system to: define a plurality of probes to trace the program; allocate a first speculative buffer using one of the plurality of probes, wherein the first speculative buffer is associated with a first processor; encounter one of the plurality of probes during tracing of the program; execute an action in the encountered probe to obtain data associated with the program; store the data in the first speculative buffer; commit the data to a first principal buffer from the first speculative buffer based on a state value associated with the tracing of the program, if one of the plurality of probes comprising a commit function is encountered; discard the data in the first speculative buffer based on the state value, if one of the plurality of probes comprising a discard function is encountered; and evaluate the data transferred to the first principal buffer.