LTTng

LTTng (Linux Trace Toolkit: next generation) 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 (for Linux kernel tracing) and dynamically linked libraries (for application and library tracing). 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 (see the LTTng-modules README file for more details) 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 (kernel and userspace) 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.