| 1 | LTTng 2.0 modules |
| 2 | |
| 3 | Mathieu Desnoyers |
| 4 | July 19, 2011 |
| 5 | |
| 6 | LTTng 2.0 kernel modules build against a vanilla or distribution kernel, without |
| 7 | need for additional patches. Other features: |
| 8 | |
| 9 | - Produces CTF (Common Trace Format) natively, |
| 10 | (http://www.efficios.com/ctf) |
| 11 | - Function tracer, perf counters and kprobes support, |
| 12 | - Integrated interface for both kernel and userspace tracing, |
| 13 | - Have the ability to attach "context" information to events in the |
| 14 | trace (e.g. any perf counter, pid, ppid, tid, comm name, etc). |
| 15 | basically, all the extra information fields to be collected with |
| 16 | events are optional, specified on a per-tracing-session basis |
| 17 | (except for timestamp and event id, which are mandatory). |
| 18 | |
| 19 | To build and install, you will need to have your kernel headers available (or |
| 20 | access to your full kernel source tree), and use: |
| 21 | |
| 22 | make |
| 23 | make modules_install |
| 24 | |
| 25 | If you need to specify the target directory to the kernel you want to build |
| 26 | against, use: |
| 27 | |
| 28 | KERNELDIR=path_to_kernel_dir make |
| 29 | KERNELDIR=path_to_kernel_dir make modules_install |
| 30 | |
| 31 | Use lttng-tools (git://git.lttng.org/lttng-tools.git) to control the tracer. |
| 32 | LTTng tools should automatically load the kernel modules when needed. |
| 33 | |
| 34 | Use Babeltrace (git://git.efficios.com/babeltrace.git) to print traces as a |
| 35 | human-readable text log. |
| 36 | |
| 37 | Please note that the LTTng-UST 2.0 (user-space tracing counterpart of LTTng 2.0) |
| 38 | is still in active development and not released yet. |
| 39 | |
| 40 | So far, it has been tested on vanilla kernels 2.6.38 and 2.6.39 (on x86 at the |
| 41 | moment). It should work fine with newer kernels and other architectures, but |
| 42 | expect build issues with kernels older than 2.6.36. The clock source currently |
| 43 | used is the standard gettimeofday (slower, less scalable and less precise than |
| 44 | the LTTng 0.x clocks). Support for LTTng 0.x clocks will be added back soon into |
| 45 | LTTng 2.0. |