Surety is performing system maintenance this weekend. Electronic date stamps on new Prior Art Database disclosures may be delayed.
Browse Prior Art Database

Storing time stamps on stack for in memory tracing

IP.com Disclosure Number: IPCOM000228716D
Publication Date: 2013-Jul-01
Document File: 1 page(s) / 34K

Publishing Venue

The IP.com Prior Art Database


Many mechanisms have been implemented to reduce the performance and memory cost of generating and storing trace and snapshot data for monitoring and diagnostics. This disclosure discusses an approach that stores time stamps directly into a threads stack frames and uses that as an in-memory trace and snapshot buffer.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 1

Storing time stamps on stack for in memory tracing

Today there are generally two approaches to debugging: using snapshots (dumps), and using trace. Snapshots have the advantage of having no performance overhead until there is a problem, but lack the history information as to how we got to the failure event. Tracing has the advantage of history, but has an ongoing performance overhead and the relevant parts of the code must be enabled for tracing.

    Various mechanisms have therefore been implemented to try to minimise the cost of tracing generally around having always on trace that is stored in-memory in order to avoid the I/O overhead, and extracting the trace from the snapshot on failure.

    Whilst in-memory tracing reduces the I/O overhead, there is still the performance and memory cost of generating the trace point data and managing the in-memory buffer.

    There is therefore a need for mechanisms that further minimise the cost of generating history information of what occurred leading to a failure or event of interest, whilst minimising the performance and memory impact.

    The proposal of this disclosure is to store time information on the execution stack itself. At the point that an event of interest occurs, the execution stack for all of the threads can be traversed to generate trace-like history of how the failure event or event of interest was reached. This has the benefit of being very low performance overhead: retrieval of the time stamp counter is usually a single instruction, and ve...