LTTng


LTTng is a system software package for correlated tracing of the Linux kernel, applications and libraries. The project was originated by Mathieu Desnoyers with an initial release in 2005. Its predecessor is the Linux Trace Toolkit.
LTTng uses the Tracepoint instrumentation of the Linux kernel, as well as various other information sources such as kprobes, and the Perf performance monitoring counters.
Designed for minimal performance impact and having a near-zero impact when not tracing, it is useful for debugging a wide range of bugs that are otherwise extremely challenging.

Features

The challenging problems traceable with LTTng include, for example, performance problems on parallel systems and on real-time systems.
Custom instrumentation is easy to add.

Structure

LTTng consists of kernel modules and dynamically linked libraries. It is controlled by a session daemon, which receives commands from a command line interface, lttng. The Babeltrace project allows translating traces into a human-readable log, and provides a trace reading library, libbabeltrace.

Deployment

LTTng is available as a set of packages.
LTTng has at least basic support for all Linux-supported architectures as well as support for FreeBSD.
Major users include Google, IBM, Autodesk, Siemens, Nokia, Sony and Ericsson. It is included in Wind River Workbench, Mentor Graphics Mentor Embedded Linux, ELinOS embedded Linux, MontaVista Mobilinux 5.0, STLinux and SUSE Linux Enterprise Real-Time Linux distributions. Once collected, multiple solutions exist to process and visualize LTTng trace data such as the open-source LTTV viewer, Eclipse Trace Compass or commercial tools such as Mentor Graphics' Sourcery Analyzer and Percepio Tracealyzer.
LTTng-modules, LTTng-UST, LTTng-tools and Babeltrace are actively developed by an open community.