Add support for kvm x86 specific tracepoints
[lttng-modules.git] / README
CommitLineData
e777c0a4 1LTTng 2.x modules
98541fcf
MD
2
3Mathieu Desnoyers
e777c0a4 4March 29, 2013
98541fcf 5
e777c0a4 6LTTng 2.x kernel modules build against a vanilla or distribution kernel, without
98541fcf
MD
7need 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
20To build and install, you will need to have your kernel headers available (or
21access to your full kernel source tree), and use:
22
6b408629
MD
23% make
24# make modules_install
65a8ae6b 25# depmod -a
98541fcf
MD
26
27If you need to specify the target directory to the kernel you want to build
28against, 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
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
bd2fc8af 38
d117fe45
MD
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
e777c0a4
MD
41tested on ARM), 3.4, 3.5, 3.8, 3.9-rc on x86 64-bit. Kernels 2.6.32 to
422.6.34 need up to 3 patches applied (refer to linux-patches within the
43lttng-modules tree). It should work fine with newer kernels and other
44architectures, but expect build issues with kernels older than 2.6.36.
45The clock source currently used is the standard gettimeofday (slower,
46less scalable and less precise than the LTTng 0.x clocks). Support for
47LTTng 0.x clocks will be added back soon into LTTng 2.0. Please note
48that lttng-modules 2.0 can build on a Linux kernel patched with the
49LTTng 0.x patchset, but the lttng-modules 2.0 replace the lttng-modules
500.x, so both tracers cannot be installed at the same time for a given
51kernel version.
a3a8ea22 52
d0a5ff7d 53
bd6867a5 54* Kernel config options required
d0a5ff7d 55
2dc86a59
MD
56CONFIG_MODULES: required
57 * Kernel modules support.
d0a5ff7d
MD
58CONFIG_KALLSYMS: required
59 * See wrapper/ files. This is necessary until the few required missing
60 symbols are exported to GPL modules from mainline.
61CONFIG_HIGH_RES_TIMERS: required
62 * Needed for LTTng 2.0 clock source.
63CONFIG_TRACEPOINTS: required
64 kernel tracepoint instrumentation
65 * Enabled as side-effect of any of the perf/ftrace/blktrace
66 instrumentation features.
67
68
69* Kernel config options supported (optional)
70
71The following kernel configuration options will affect the features
72available from LTTng:
73
74
75CONFIG_HAVE_SYSCALL_TRACEPOINTS:
76 system call tracing
77 lttng enable-event -k --syscall
78 lttng enable-event -k -a
79CONFIG_PERF_EVENTS:
80 performance counters
81 lttng add-context -t perf:*
82CONFIG_EVENT_TRACING:
83 needed to allow block layer tracing
1110c703 84CONFIG_KPROBES:
d0a5ff7d
MD
85 Dynamic probe.
86 lttng enable-event -k --probe ...
87CONFIG_KRETPROBES:
88 Dynamic function entry/return probe.
89 lttng enable-event -k --function ...
90
936e4abc 91
a3a8ea22
MD
92* Note about Perf PMU counters support
93
94Each PMU counter has its zero value set when it is attached to a context with
95add-context. Therefore, it is normal that the same counters attached to both the
96stream context and event context show different values for a given event; what
97matters is that they increment at the same rate.
This page took 0.028298 seconds and 4 git commands to generate.