X-Git-Url: http://git.liburcu.org/?p=lttv.git;a=blobdiff_plain;f=LTTngManual.html;h=10978001793975f4867738ff5f0bf34a4bcfa3dd;hp=09b6c3f3d2d208a832b9756f196c5519a6123707;hb=HEAD;hpb=5b8a3ef26161f0218077d785c05209609e05516c diff --git a/LTTngManual.html b/LTTngManual.html index 09b6c3f3..10978001 100644 --- a/LTTngManual.html +++ b/LTTngManual.html @@ -8,7 +8,7 @@

Linux Trace Toolkit Next Generation Manual

Author : Mathieu Desnoyers, September 2005
-Last update : January 21st, 2009
+Last update : September 3, 2010
(originally known as the LTTng QUICKSTART guide)

Table of Contents

@@ -76,10 +76,10 @@ packages from the LTTng and LTTV sources. These operations are made for installing the LTTng 0.86 tracer on a linux 2.6.X kernel. You will also find instructions for installation of LTTV 0.12.x : the Linux Trace Toolkit Viewer. -To see the list of compatibilities between LTTng, ltt-control, LTTV, please -refer to : +To see the list of compatibilities between the LTTng kernel patchset, LTTng +modules, ltt-control, LTTV, please refer to : LTTng+LTTV versions compatibility +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 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 @@ -98,6 +98,9 @@ which are derived work from the Linux kernel. LTTV is available under the Gnu GPLv2. The low-level LTTV trace reading library is released under Gnu LGPLv2.1.

+The Eclipse LTTng trace analysis tool is released under the EPL and uses the +LTTV trace reading library (LGPLv2.1). +

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 @@ -171,7 +174,7 @@ gtk 2.4 or better development libraries (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 @@ -191,8 +194,7 @@ libc6 development librairies

See the list of compatibilities between LTTng, ltt-control and LTTV at : LTTng+LTTV -versions compatibility. +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.

Getting the LTTng packages

@@ -201,9 +203,11 @@ versions compatibility. su - mkdir /usr/src/lttng cd /usr/src/lttng -(see http://ltt.polymtl.ca/lttng for package listing) -wget http://ltt.polymtl.ca/lttng/patch-2.6.X-lttng-0.x.xx.tar.bz2 +(see http://lttng.org/files/lttng for package listing) +wget http://lttng.org/files/lttng/patch-2.6.X-lttng-0.x.xx.tar.bz2 +wget http://lttng.org/files/lttng/lttng-modules-0.x.tar.bz2 bzip2 -cd patch-2.6.X-lttng-0.x.xx.tar.bz2 | tar xvof - +bzip2 -cd lttng-modules-0.x.tar.bz2 | tar xvof - @@ -229,7 +233,7 @@ mv linux-2.6.X linux-2.6.X-lttng-0.x.xx 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. @@ -238,23 +242,10 @@ make menuconfig (or make xconfig or make config) Select the following options : [*] Prompt for development and/or incomplete code/drivers [*] Activate markers - [*] Activate userspace markers ABI (experimental, optional) [*] Immediate value optimization (optional) - [*] Linux Trace Toolkit Next Generation (LTTng) ---> - or <*> Compile lttng tracing probes - or <*> Linux Trace Toolkit High-speed Lockless Data Relay - or <*> Linux Trace Toolkit Lock-Protected Data Relay - or <*> Linux Trace Toolkit Serializer - or <*> Linux Trace Toolkit Marker Control - or <*> Linux Trace Toolkit Tracer - [*] Align Linux Trace Toolkit Traces - or <*> Support logging events from userspace - [*] Support trace extraction from crash dump - or <*> Linux Trace Toolkit Trace Controller - or <*> Linux Trace Toolkit State Dump - Select - Select - Select + Select <Exit> + Select <Exit> + Select <Yes> make make modules_install (if necessary, create a initrd with mkinitrd or your preferate alternative) @@ -280,6 +271,22 @@ Select the Linux 2.6.X-lttng-0.x.xx kernel in your boot loader. -- + +

Installing the LTTng modules

+ +
+su -
+cd /usr/src/lttng/lttng-modules-0.x
+KERNELDIR=/usr/src/linux-2.6.X-lttng-0.x.xx make
+KERNELDIR=/usr/src/linux-2.6.X-lttng-0.x.xx make modules_install
+
+Optionally, make can be prefixed with tracer options:
+
+EXTRA_CFLAGS="-DLTT_DEBUG_EVENT_SIZE" make
+EXTRA_CFLAGS="-DLTT_VMCORE" make
+EXTRA_CFLAGS="-DLTT_DEBUG_EVENT_SIZE -DLTT_VMCORE" make
+
+

Editing the system wide configuration

@@ -310,7 +317,6 @@ compile statically, you may not need to issue all these commands. modprobe ltt-trace-control modprobe ltt-marker-control modprobe ltt-tracer -modprobe ltt-serialize modprobe ltt-relay modprobe ipc-trace modprobe kernel-trace @@ -321,6 +327,7 @@ modprobe jbd2-trace modprobe ext4-trace modprobe syscall-trace modprobe trap-trace +modprobe block-trace #if locking tracing is wanted, uncomment the following #modprobe lockdep-trace @@ -341,7 +348,6 @@ cp /etc/modules /etc/modules.bkp echo ltt-trace-control >> /etc/modules echo ltt-marker-control >> /etc/modules echo ltt-tracer >> /etc/modules -echo ltt-serialize >> /etc/modules echo ltt-relay >> /etc/modules echo ipc-trace >> /etc/modules echo kernel-trace >> /etc/modules @@ -366,7 +372,7 @@ same name as the ltt-control kernel module, they are *not* the same thing.)
 su -
 cd /usr/src
-wget http://ltt.polymtl.ca/lttng/ltt-control-0.x-xxxx2006.tar.gz
+wget http://lttng.org/files/lttng/ltt-control-0.x-xxxx2006.tar.gz
 gzip -cd ltt-control-0.x-xxxx2008.tar.gz | tar xvof -
 cd ltt-control-0.x-xxxx2006
 (refer to README to see the development libraries that must be installed on you
@@ -382,12 +388,12 @@ ldconfig
 
 
 Make sure you selected the kernel menuconfig option :
-     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
@@ -401,7 +407,7 @@ or different from the visualisation machine)
 
 su -
 cd /usr/src
-wget http://ltt.polymtl.ca/packages/lttv-0.x.xx-xxxx2008.tar.gz
+wget http://lttng.org/files/packages/lttv-0.x.xx-xxxx2008.tar.gz
 gzip -cd lttv-0.x.xx-xxxx2008.tar.gz | tar xvof -
 cd lttv-0.x.xx-xxxx2008
 (refer to README to see the development libraries that must be installed on your
@@ -540,18 +546,16 @@ for LTTng probe examples.
 

Adding userspace instrumentation

Add new events to userspace programs with -userspace markers packages. +userspace markers packages. Get the latest markers-userspace-*.tar.bz2 and see the Makefile and examples. It allows inserting markers in executables and libraries, currently only on x86_32 and x86_64. See markers-userspace-0.5.tar.bz2 or more recent. +href="http://lttng.org/files/packages/markers-userspace-0.5.tar.bz2">markers-userspace-0.5.tar.bz2 or more recent.

-Note that a new design document for a 3rd generation of tracepoint/marker-based -userspace tracing is available at LTTng User-space Tracing -Design. This new infrastructure is not yet implemented. +Note that tracepoint/marker-based userspace tracing is available at LTTng User-space Tracer (UST).

The easy quick-and-dirty way to perform userspace tracing is currently to write