Linux Trace Toolkit Quickstart
------------------------------
Author : Mathieu Desnoyers, September 2005
-Last update : May 14, 2007
+Last update : July 31, 2008
This document is made of four parts : the first one explains how to install
What you will typically want is to read sections 2 and 3 : install LTTng from
sources and use it.
-These operations are made for installing the LTTng 0.6.X tracer on a
-linux 2.6.X kernel. You will also find instructions for installation of
-LTTV 0.8.x : the Linux Trace Toolkit Viewer.
+These operations are made for installing the LTTng 0.12 tracer on a linux 2.6.X
+kernel. You will also find instructions for installation of LTTV 0.8.x : the
+Linux Trace Toolkit Viewer.
To see the list of compatibilities between LTTng, ltt-control, LTTV, genevent
and ltt-usertrace, please refer to :
Items preceded by [*] means they has to be built into the kernel.
Items preceded by [M] means they has to be built as modules.
Items preceded by [ ] means they should be removed.
- go to the "Instrumentation Support" section
+ go to the "General setup" section
Select the following options :
+ [*] Activate tracepoints
+ [*] Activate markers
+ [*] Activate userspace markers ABI
+ <*> Compile generic tracing probes
+ Linux Trace Toolkit --->
+ [LTTng fine-grained-timestamping]
[*] Linux Trace Toolkit Instrumentation Support
+ <M> or <*> Linux Trace Toolkit Relay+DebugFS Support
+ <M> or <*> Linux Trace Toolkit Serializer
+ <M> or <*> Linux Trace Toolkit Marker Control
<M> or <*> Linux Trace Toolkit Tracer
- <M> or <*> Linux Trace Toolkit Relay+DebugFS Support
- It makes no difference for the rest of the procedure whether the Tracer
- is compiled built-in or as a module.
+ It makes no difference for the rest of the procedure whether the Tracer
+ is compiled built-in or as a module.
activate :
[*] Align Linux Trace Toolkit Traces
- [*] Allow tracing from userspace
<M> Linux Trace Toolkit Netlink Controller
<M> Linux Trace Toolkit State Dump
your choice (see < Help >) :
- [ ] Activate Linux Trace Toolkit Heartbeat Timer
- You may or may not decide to compile probes. Afterward, you will have to
- load the probe modules to enable tracing of their events. The probes
- automatically select the appropriate facilities.
- Static instrumentation is a more invasive type of instrumentation that gives
- the address taking a lock or doing a printk.
+ [ ] Write heartbeat event to shrink traces
+ [ ] Support trace extraction from crash dump
Select <Exit>
Select <Exit>
Select <Yes>
compile statically, you may not need to issue all these commands.
modprobe ltt-control
-modprobe ltt-core
-modprobe ltt-relay
+modprobe ltt-marker-control
modprobe ltt-tracer
-modprobe ltt-probe-mm
-modprobe ltt-probe-kernel
-modprobe ltt-probe-i386 (or x86_64, powerpc, ppc, arm, mips)
-modprobe ltt-probe-net
-modprobe ltt-probe-list
-modprobe ltt-probe-ipc
-modprobe ltt-probe-fs
+modprobe ltt-serialize
+modprobe ltt-relay
+modprobe ipc-trace
+modprobe kernel-trace
+modprobe mm-trace
+modprobe net-trace
+modprobe fs-trace
If you want to have complete information about the kernel state (including all
the process names), you need to load the ltt-statedump module. This is done by
cp /etc/modules /etc/modules.bkp
echo ltt-control >> /etc/modules
-echo ltt-core >> /etc/modules
-echo ltt-relay >> /etc/modules
+echo ltt-marker-control >> /etc/modules
echo ltt-tracer >> /etc/modules
-echo ltt-probe-mm >> /etc/modules
-echo ltt-probe-kernel >> /etc/modules
-echo ltt-probe-i386 >> /etc/modules (or x86_64, powerpc, ppc, arm, mips)
-echo ltt-probe-net >> /etc/modules
-echo ltt-probe-list >> /etc/modules
-echo ltt-probe-ipc >> /etc/modules
-echo ltt-probe-fs >> /etc/modules
-echo ltt-statedump >> /etc/modules
-
-(note : if you want to probe a marker which is within a module, make sure you
-load the probe _after_ the module, otherwise the probe will not be able to
-connect itself to the marker.)
+echo ltt-serialize >> /etc/modules
+echo ltt-relay >> /etc/modules
+echo ipc-trace >> /etc/modules
+echo kernel-trace >> /etc/modules
+echo mm-trace >> /etc/modules
+echo net-trace >> /etc/modules
+echo fs-trace >> /etc/modules
* Getting and installing the ltt-control package (on the traced machine)
make
make install
-* Getting and installing the ltt-usertrace package for user space tracing
-See http://ltt.polymtl.ca/ > USERSPACE TRACING QUICKSTART
+* Getting and installing the markers-userspace package for user space tracing
+See http://ltt.polymtl.ca/packages/markers-userspace-0.5.tar.bz2 or more recent.
* Getting and installing the LTTV package (on the visualisation machine, same or
** Section 3 * Using LTTng and LTTV **
***********************************************************
+* Arm Linux Kernel Markers after each boot
+
+ltt-armall
+
* Use graphical LTTV to control tracing and analyse traces
lttv-gui (or /usr/local/bin/lttv-gui)
bottom right label "Current time". Support for this type of filtering should
be added to the filter module soon.
+* Hybrid mode
+
+Starting from LTTng 0.5.105 and ltt-control 0.20, a new mode can be used :
+hybrid. It can be especially useful when studying big workloads on a long period
+of time.
+
+When using this mode, the most important, low rate control information will be
+recorded during all the trace by lttd (i.e. process creation/exit). The high
+rate information (i.e. interrupt/traps/syscall entry/exit) will be kept in a
+flight recorder buffer (now named flight-channelname_X).
+
+The following lttctl commands take an hybrid trace :
+
+Create trace channel, start lttd on normal channels, start tracing:
+lttctl -n tracename -d -l /mnt/relayfs/ltt -t /tmp/trace1 -m hybrid
+
+Stop tracing, start lttd on flight recorder channels, destroy trace channels :
+lttctl -n tracename -f -l /mnt/relayfs/ltt -t /tmp/trace1 -m hybrid
+
+
+We will need to tweak what we consider "important" medium rate events. For
+instance, thread branding events are actually considered a "high rate" event
+when it should be considered "medium rate". The same should apply for the
+state dump process enumeration.
+
+* Flight recorder mode
+
+The flight recorder mode writes data into overwritten buffers for all channels,
+including control channels, except for the facilities tracefiles.
+
+The following lttctl commands take a flight recorder trace :
+
+lttctl -n trace -c -m flight
+lttd -n -d -t /tmp/trace -c /sys/kernel/debug/ltt
+lttctl -n trace -s
+.. do stuff
+lttctl -n trace -q
+lttd -f -d -t /tmp/trace -c /sys/kernel/debug/ltt
+lttctl -m trace -r
+
***********************************************************
** Section 4 * Adding new instrumentations with genevent **