LTTng 2.0 modules
Mathieu Desnoyers
-July 19, 2011
+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 and kprobes support,
+ 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).
% 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
-Please note that the LTTng-UST 2.0 (user-space tracing counterpart of LTTng 2.0)
-is still in active development and not released yet.
-
-So far, it has been tested on vanilla kernels 2.6.38 and 2.6.39 (on x86 at the
-moment). 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.
+So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39, 3.0,
+3.1, 3.2, 3.3 (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.