<h1>Linux Trace Toolkit Next Generation Manual</h1>
Author : Mathieu Desnoyers, September 2005<br>
-Last update : January 21st, 2009<br>
+Last update : January 30, 2010<br>
(originally known as the LTTng QUICKSTART guide)
<h2>Table of Contents</h2>
To see the list of compatibilities between LTTng, ltt-control, LTTV, please
refer to :
<a
-href="http://ltt.polymtl.ca/svn/trunk/lttv/doc/developer/lttng-lttv-compatibility.html">LTTng+LTTV versions compatibility</a>
+href="http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=blob_plain;f=doc/developer/lttng-lttv-compatibility.html;hb=HEAD">LTTng+LTTV versions compatibility</a>
The ongoing work had the Linux Kernel Markers integrated in the mainline Linux
kernel since Linux 2.6.24 and the Tracepoints since 2.6.28. In its current
<br>
<br>
<h3><a href="#TOClicenses" name="licenses">Licenses</a></h3>
-<br>
<p>
LTTng, UST and LTTV are developed by an open community. LTTng is released under
a dual Gnu LGPLv2.1/GPLv2 license, except for very few kernel-specific files
LTTV is available under the Gnu GPLv2. The low-level LTTV trace reading library
is released under Gnu LGPLv2.1.
<p>
+The Eclipse LTTng trace analysis tool is released under the EPL and uses the
+LTTV trace reading library (LGPLv2.1).
+<p>
The UST (Userspace Tracing) and the Userspace RCU libraries are released under
the LGPLv2.1 license, which allows linking with non-GPL (BSD, proprietary...)
applications. The associated headers are released under MIT-style/BSD-style
<p>
Please refer to each particular file licensing for details.
-<br>
-<br>
<h3><a href="#TOCarch" name="arch">Supported architectures</a></h3>
-<br>
LTTng :<br>
<br>
<li> x86 32/64 bits
(Fedora : gtk2, gtk2-devel)
note : For Fedora users : this might require at least core 3 from Fedora,
or you might have to compile your own GTK2 library.
-glib 2.4 or better development libraries
+glib 2.16 or better development libraries
(Debian : libglib2.0-0, libglib2.0-dev)
(Fedora : glib2, glib2-devel)
libpopt development libraries
<p>
See the list of compatibilities between LTTng, ltt-control and LTTV at :
<a
-href="http://ltt.polymtl.ca/svn/trunk/lttv/doc/developer/lttng-lttv-compatibility.html">LTTng+LTTV
-versions compatibility</a>.
+href="http://lttng.org/cgi-bin/gitweb.cgi?p=lttv.git;a=blob_plain;f=doc/developer/lttng-lttv-compatibility.html;hb=HEAD">LTTng+LTTV versions compatibility</a>.
<h3><a href="#TOCgetlttng" name="getlttng">Getting the LTTng packages</a></h3>
su -
cd /usr/src/linux-2.6.X-lttng-0.x.xx
make menuconfig (or make xconfig or make config)
- Select the < Help > button if you are not familiar with kernel
+ Select the < Help > button if you are not familiar with kernel
configuration.
Items preceded by [*] means they has to be built into the kernel.
Items preceded by [M] means they has to be built as modules.
[*] Activate markers
[*] Activate userspace markers ABI (experimental, optional)
[*] Immediate value optimization (optional)
- [*] Linux Trace Toolkit Next Generation (LTTng) --->
- <M> or <*> Compile lttng tracing probes
- <M> or <*> Linux Trace Toolkit High-speed Lockless Data Relay
- <M> or <*> Linux Trace Toolkit Lock-Protected Data Relay
- <M> or <*> Linux Trace Toolkit Serializer
- <M> or <*> Linux Trace Toolkit Marker Control
- <M> or <*> Linux Trace Toolkit Tracer
+ [*] Linux Trace Toolkit Next Generation (LTTng) --->
+ <M> or <*> Compile lttng tracing probes
+ <M> or <*> Linux Trace Toolkit High-speed Lockless Data Relay
+ <M> or <*> Linux Trace Toolkit Lock-Protected Data Relay
+ <M> or <*> Linux Trace Toolkit Serializer
+ <M> or <*> Linux Trace Toolkit Marker Control
+ <M> or <*> Linux Trace Toolkit Tracer
[*] Align Linux Trace Toolkit Traces
- <M> or <*> Support logging events from userspace
+ <M> or <*> Support logging events from userspace
[*] Support trace extraction from crash dump
- <M> or <*> Linux Trace Toolkit Trace Controller
- <M> or <*> Linux Trace Toolkit State Dump
- Select <Exit>
- Select <Exit>
- Select <Yes>
+ <M> or <*> Linux Trace Toolkit Trace Controller
+ <M> or <*> Linux Trace Toolkit State Dump
+ Select <Exit>
+ Select <Exit>
+ Select <Yes>
make
make modules_install
(if necessary, create a initrd with mkinitrd or your preferate alternative)
modprobe ext4-trace
modprobe syscall-trace
modprobe trap-trace
+modprobe block-trace
#if locking tracing is wanted, uncomment the following
#modprobe lockdep-trace
</PRE>
<PRE>
Make sure you selected the kernel menuconfig option :
- <M> or <*> Support logging events from userspace
+ <M> or <*> Support logging events from userspace
And that the ltt-userspace-event kernel module is loaded if selected as a
module.
Simple userspace tracing is available through
-echo "some text to record" > /mnt/debugfs/ltt/write_event
+echo "some text to record" > /mnt/debugfs/ltt/write_event
It will appear in the trace under event :
channel : userspace
href="http://ltt.polymtl.ca/packages/markers-userspace-0.5.tar.bz2">markers-userspace-0.5.tar.bz2</a> or more recent.
<p>
-Note that a new design document for a 3rd generation of tracepoint/marker-based
-userspace tracing is available at <a
-href="http://ltt.polymtl.ca/svn/trunk/lttv/doc/developer/ust.html">LTTng User-space Tracing
-Design</a>. This new infrastructure is not yet implemented.
+Note that tracepoint/marker-based userspace tracing is available at <a
+href="http://lttng.org/ust/">LTTng User-space Tracer (UST)</a>.
<p>
The easy quick-and-dirty way to perform userspace tracing is currently to write