X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=README;h=70d991f4d907024fa7d9390e60de25e566ba9aa9;hb=refs%2Fheads%2Fstable-2.5;hp=48ac65727aec9d6056ed2f4e4c38b75c8b1c7461;hpb=98541fcfb395ad8bc7f1dc347694b3ce5527c4c7;p=lttng-modules.git diff --git a/README b/README index 48ac6572..70d991f4 100644 --- a/README +++ b/README @@ -1,39 +1,87 @@ -LTTng 2.0 modules +LTTng 2.x modules Mathieu Desnoyers -July 19, 2011 +March 29, 2013 -LTTng 2.0 kernel modules build against a vanilla or distribution kernel, without +LTTng 2.x 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 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 install +% 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 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 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. +Linux kernels >= 2.6.36 are supported. + + +* Kernel config options required + +CONFIG_MODULES: required + * Kernel modules support. +CONFIG_KALLSYMS: required + * See wrapper/ files. This is necessary until the few required missing + symbols are exported to GPL modules from mainline. +CONFIG_HIGH_RES_TIMERS: required + * Needed for LTTng 2.0 clock source. +CONFIG_TRACEPOINTS: required + kernel tracepoint instrumentation + * Enabled as side-effect of any of the perf/ftrace/blktrace + instrumentation features. + + +* Kernel config options supported (optional) + +The following kernel configuration options will affect the features +available from LTTng: + + +CONFIG_HAVE_SYSCALL_TRACEPOINTS: + system call tracing + lttng enable-event -k --syscall + lttng enable-event -k -a +CONFIG_PERF_EVENTS: + performance counters + lttng add-context -t perf:* +CONFIG_EVENT_TRACING: + needed to allow block layer tracing +CONFIG_KPROBES: + Dynamic probe. + lttng enable-event -k --probe ... +CONFIG_KRETPROBES: + Dynamic function entry/return probe. + lttng enable-event -k --function ... +CONFIG_KALLSYMS_ALL: + State dump of mapping between block device number and name. + + +* 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.