X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=README;h=1fd49b68dea49d650b394c064a4c43f73a5bbabe;hb=ec01ec933b457ad54e399c38cf768a699e32ddbb;hp=6c92e3132b5a417f0e2642ff806d972b369bdddf;hpb=9d4c2d78aebfafcc80f9ebd7babfd9e51d397a3d;p=lttng-modules.git diff --git a/README b/README index 6c92e313..1fd49b68 100644 --- a/README +++ b/README @@ -1,45 +1,58 @@ 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) -- Function tracer, perf counters and kprobes support, +- Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU) + 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 perf counter, pid, ppid, tid, comm name, etc). So - basically, all the perf "required fields" like "preempt count" and - "bkl count" are all optional, specified on a per-tracing-session basis - (except for timestamp and event id, which are mandatory). + trace (e.g. any PMU counter, pid, ppid, tid, comm name, etc). + All the extra information fields to be collected with events are + optional, specified on a per-tracing-session basis (except for + timestamp and event id, which are mandatory). To build and install, you will need to have your kernel headers available (or access to your full kernel source tree), and use: -make -make modules_install +% 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 - -Use lttng-tools (git://git.lttng.org/lttng-tools.git) to control the tracer. -LTTng tools should automatically load the kernel modules when needed. - -Use Babeltrace (git://git.efficios.com/babeltrace.git) to print traces as a -human-readable text log. - -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. +% 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 + +So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39 and 3.0 (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.