Commit | Line | Data |
---|---|---|
e777c0a4 | 1 | LTTng 2.x modules |
98541fcf MD |
2 | |
3 | Mathieu Desnoyers | |
e777c0a4 | 4 | March 29, 2013 |
98541fcf | 5 | |
e777c0a4 | 6 | LTTng 2.x kernel modules build against a vanilla or distribution kernel, without |
98541fcf MD |
7 | need for additional patches. Other features: |
8 | ||
9 | - Produces CTF (Common Trace Format) natively, | |
10 | (http://www.efficios.com/ctf) | |
fe178379 | 11 | - Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU) |
e5fb2910 | 12 | counters, kprobes, and kretprobes support, |
98541fcf MD |
13 | - Integrated interface for both kernel and userspace tracing, |
14 | - Have the ability to attach "context" information to events in the | |
fe178379 MD |
15 | trace (e.g. any PMU counter, pid, ppid, tid, comm name, etc). |
16 | All the extra information fields to be collected with events are | |
17 | optional, specified on a per-tracing-session basis (except for | |
18 | timestamp and event id, which are mandatory). | |
98541fcf MD |
19 | |
20 | To build and install, you will need to have your kernel headers available (or | |
21 | access to your full kernel source tree), and use: | |
22 | ||
6b408629 MD |
23 | % make |
24 | # make modules_install | |
65a8ae6b | 25 | # depmod -a |
98541fcf MD |
26 | |
27 | If you need to specify the target directory to the kernel you want to build | |
28 | against, use: | |
29 | ||
6b408629 MD |
30 | % KERNELDIR=path_to_kernel_dir make |
31 | # KERNELDIR=path_to_kernel_dir make modules_install | |
65a8ae6b | 32 | # depmod -a kernel_version |
98541fcf | 33 | |
6b408629 MD |
34 | Use lttng-tools to control the tracer. LTTng tools should automatically load |
35 | the kernel modules when needed. Use Babeltrace to print traces as a | |
36 | human-readable text log. These tools are available at the following URL: | |
37 | http://lttng.org/lttng2.0 | |
bd2fc8af | 38 | |
d117fe45 MD |
39 | So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39, 3.0, |
40 | 3.1, 3.2, 3.3 (on x86 32/64-bit, and powerpc 32-bit at the moment, build | |
e777c0a4 MD |
41 | tested on ARM), 3.4, 3.5, 3.8, 3.9-rc on x86 64-bit. Kernels 2.6.32 to |
42 | 2.6.34 need up to 3 patches applied (refer to linux-patches within the | |
43 | lttng-modules tree). It should work fine with newer kernels and other | |
44 | architectures, but expect build issues with kernels older than 2.6.36. | |
45 | The clock source currently used is the standard gettimeofday (slower, | |
46 | less scalable and less precise than the LTTng 0.x clocks). Support for | |
a8da4887 | 47 | LTTng 0.x clocks will be added back soon into LTTng 2.0. |
a3a8ea22 | 48 | |
d0a5ff7d | 49 | |
bd6867a5 | 50 | * Kernel config options required |
d0a5ff7d | 51 | |
2dc86a59 MD |
52 | CONFIG_MODULES: required |
53 | * Kernel modules support. | |
d0a5ff7d MD |
54 | CONFIG_KALLSYMS: required |
55 | * See wrapper/ files. This is necessary until the few required missing | |
56 | symbols are exported to GPL modules from mainline. | |
57 | CONFIG_HIGH_RES_TIMERS: required | |
58 | * Needed for LTTng 2.0 clock source. | |
59 | CONFIG_TRACEPOINTS: required | |
60 | kernel tracepoint instrumentation | |
61 | * Enabled as side-effect of any of the perf/ftrace/blktrace | |
62 | instrumentation features. | |
63 | ||
64 | ||
65 | * Kernel config options supported (optional) | |
66 | ||
67 | The following kernel configuration options will affect the features | |
68 | available from LTTng: | |
69 | ||
70 | ||
71 | CONFIG_HAVE_SYSCALL_TRACEPOINTS: | |
72 | system call tracing | |
73 | lttng enable-event -k --syscall | |
74 | lttng enable-event -k -a | |
75 | CONFIG_PERF_EVENTS: | |
76 | performance counters | |
77 | lttng add-context -t perf:* | |
78 | CONFIG_EVENT_TRACING: | |
79 | needed to allow block layer tracing | |
1110c703 | 80 | CONFIG_KPROBES: |
d0a5ff7d MD |
81 | Dynamic probe. |
82 | lttng enable-event -k --probe ... | |
83 | CONFIG_KRETPROBES: | |
84 | Dynamic function entry/return probe. | |
85 | lttng enable-event -k --function ... | |
86 | ||
936e4abc | 87 | |
a3a8ea22 MD |
88 | * Note about Perf PMU counters support |
89 | ||
90 | Each PMU counter has its zero value set when it is attached to a context with | |
91 | add-context. Therefore, it is normal that the same counters attached to both the | |
92 | stream context and event context show different values for a given event; what | |
93 | matters is that they increment at the same rate. |