Version 2.1.3
[lttng-modules.git] / README
... / ...
CommitLineData
1LTTng 2.0 modules
2
3Mathieu Desnoyers
4April 6, 2012
5
6LTTng 2.0 kernel modules build against a vanilla or distribution kernel, without
7need for additional patches. Other features:
8
9- Produces CTF (Common Trace Format) natively,
10 (http://www.efficios.com/ctf)
11- Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU)
12 counters, kprobes, and kretprobes support,
13- Integrated interface for both kernel and userspace tracing,
14- Have the ability to attach "context" information to events in the
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).
19
20To build and install, you will need to have your kernel headers available (or
21access to your full kernel source tree), and use:
22
23% make
24# make modules_install
25# depmod -a
26
27If you need to specify the target directory to the kernel you want to build
28against, use:
29
30% KERNELDIR=path_to_kernel_dir make
31# KERNELDIR=path_to_kernel_dir make modules_install
32# depmod -a kernel_version
33
34Use lttng-tools to control the tracer. LTTng tools should automatically load
35the kernel modules when needed. Use Babeltrace to print traces as a
36human-readable text log. These tools are available at the following URL:
37http://lttng.org/lttng2.0
38
39So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39, 3.0,
403.1, 3.2, 3.3 (on x86 32/64-bit, and powerpc 32-bit at the moment, build
41tested on ARM). Kernels 2.6.32 to 2.6.34 need up to 3 patches applied
42(refer to linux-patches within the lttng-modules tree). It should work
43fine with newer kernels and other architectures, but expect build issues
44with kernels older than 2.6.36. The clock source currently used is the
45standard gettimeofday (slower, less scalable and less precise than the
46LTTng 0.x clocks). Support for LTTng 0.x clocks will be added back soon
47into LTTng 2.0. Please note that lttng-modules 2.0 can build on a Linux
48kernel patched with the LTTng 0.x patchset, but the lttng-modules 2.0
49replace the lttng-modules 0.x, so both tracers cannot be installed at
50the same time for a given kernel version.
51
52
53* Kernel config options required
54
55CONFIG_MODULES: required
56 * Kernel modules support.
57CONFIG_KALLSYMS: required
58 * See wrapper/ files. This is necessary until the few required missing
59 symbols are exported to GPL modules from mainline.
60CONFIG_HIGH_RES_TIMERS: required
61 * Needed for LTTng 2.0 clock source.
62CONFIG_TRACEPOINTS: required
63 kernel tracepoint instrumentation
64 * Enabled as side-effect of any of the perf/ftrace/blktrace
65 instrumentation features.
66
67
68* Kernel config options supported (optional)
69
70The following kernel configuration options will affect the features
71available from LTTng:
72
73
74CONFIG_HAVE_SYSCALL_TRACEPOINTS:
75 system call tracing
76 lttng enable-event -k --syscall
77 lttng enable-event -k -a
78CONFIG_PERF_EVENTS:
79 performance counters
80 lttng add-context -t perf:*
81CONFIG_EVENT_TRACING:
82 needed to allow block layer tracing
83CONFIG_KPROBES:
84 Dynamic probe.
85 lttng enable-event -k --probe ...
86CONFIG_KRETPROBES:
87 Dynamic function entry/return probe.
88 lttng enable-event -k --function ...
89
90
91* Note about Perf PMU counters support
92
93Each PMU counter has its zero value set when it is attached to a context with
94add-context. Therefore, it is normal that the same counters attached to both the
95stream context and event context show different values for a given event; what
96matters is that they increment at the same rate.
This page took 0.023257 seconds and 4 git commands to generate.