What is SVEN ?
SVEN is a software infrastructure and API for recording trace events from kernel, user and firmware executing units. It acts like a "black box" flight recorder in an airplane.
SVEN’s distinctive features are
· Very very low overhead ( <100 nano-seconds per instrumentation call @3Ghz)
· Support for kernel/user mode on Windows and Linux platforms
What are ideal Environments for SVEN ?
SVEN it tuned for generating many small events with low overhead from different cpu contexts. This makes it ideal for analyzing the dynamics of the interactions of multiple SW components that run under time constraints. A good example are voice or multimedia data processing pipelines that cannot be stopped using traditional breakpoint debugging (HD video playback, cellular networks …)
SVEN can also be utilized as a data transport to stream data out of a device for regression or field testing. Its low overhead allows to leave the instrumentation on even in production builds. Imagine a cell phone base station somewhere in the desert that keeps logging debug data in the background or a validation suite in a QA department.
Linux Dtrace / LTTNG:
These are OS/kernel trace data producers used to profile the system behavior from a kernel viewpoint. These tools use “compiled” in kernel instrumentation points that can be dynamically enabled at runtime. They us a on-demand black-box approach to analyze the system performance and utilization. SVEN differs from this at it is a white-box approach where the user has direct control over what is traced by adding trace calls into her/his own code. On the other hand, SVEN is blind to OS related data unless someone instruments the kernel itself. Right now Dtrace/LTTNG are the tools to analyze overall system behavior, whereas SVEN gives you in depth application specific data based on the detail level of instrumentation added. They can be seen as complimentary debug tools.
Event Tracing for Windows (ETW):
ETW and SVEN both offer similar functionality. Both are white-box SW instrumentation approaches with API’s to instrument code and implement post processing SW. ETW has the advantage of being well integrated into sdk’s like the Driver development kit (WDK). SVEN has the benefit of being portable.
What is in the SVEN component ?
· SVEN SDK
SDK for building SVEN on Windows and Linux. 100% source delivery that included both the device side infrastructure and the headers,tools and libraries for instrumenting code
· Eclipse Viewer
Trace viewer integration into Eclipse 3.7 for displaying SVEN recorded traces in an GUI environment.
· JTAG Debugger Trigger
XDB debugger extensions for Linux to re-use SVEN instrumentation for implementing smart breakpoints.
What SVEN configuration exist ?
· SVEN for Linux (included in Intel System Studio)
Resources (see downloads below):
SVEN Intel Technology Journal Article
SVEN SDK Documentation
SVEN Viewer Documentation