LTTng 2.0 modules Mathieu Desnoyers February 8, 2012 LTTng 2.0 kernel modules build against a vanilla or distribution kernel, without need for additional patches. Other features: - Produces CTF (Common Trace Format) natively, (http://www.efficios.com/ctf) - Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU) counters, kprobes, and kretprobes support, - Integrated interface for both kernel and userspace tracing, - Have the ability to attach "context" information to events in the trace (e.g. any PMU counter, pid, ppid, tid, comm name, etc). All the extra information fields to be collected with events are optional, specified on a per-tracing-session basis (except for timestamp and event id, which are mandatory). To build and install, you will need to have your kernel headers available (or access to your full kernel source tree), and use: % make # make modules_install # depmod -a If you need to specify the target directory to the kernel you want to build against, use: % KERNELDIR=path_to_kernel_dir make # KERNELDIR=path_to_kernel_dir make modules_install # depmod -a kernel_version Use lttng-tools to control the tracer. LTTng tools should automatically load the kernel modules when needed. Use Babeltrace to print traces as a human-readable text log. These tools are available at the following URL: http://lttng.org/lttng2.0 So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39 and 3.0 (on x86 32/64-bit, and powerpc 32-bit at the moment, build tested on ARM). It should work fine with newer kernels and other architectures, but expect build issues with kernels older than 2.6.36. The clock source currently used is the standard gettimeofday (slower, less scalable and less precise than the LTTng 0.x clocks). Support for LTTng 0.x clocks will be added back soon into LTTng 2.0. Please note that lttng-modules 2.0 can build on a Linux kernel patched with the LTTng 0.x patchset, but the lttng-modules 2.0 replace the lttng-modules 0.x, so both tracers cannot be installed at the same time for a given kernel version. LTTng-modules depends on having kallsyms enabled in the kernel it is built against. Ideally, if you want to have system call tracing, the "Trace Syscalls" feature should be enabled too. * Note about Perf PMU counters support Each PMU counter has its zero value set when it is attached to a context with add-context. Therefore, it is normal that the same counters attached to both the stream context and event context show different values for a given event; what matters is that they increment at the same rate.