add c2 facility
[lttv.git] / ltt / branches / poly / QUICKSTART
CommitLineData
d9cd3a2e 1
2QUICKSTART
3
4How to use LTTng and LTTV in a few lines :
5
6c913994 6This document is made of four parts : The first one explains how to install
7LTTng and LTTV from Debian and RPM binary packages, the second one explains how
8to install LTTng and LTTV from sources and the third one describes the steps
9to follow to trace a system and view it. The fourth and last part explains
10briefly how to add a new trace point to the kernel.
11
12What you will typically want is to read sections 1 and 3 : install LTTng from
13binary packages and use it. If there are no packages ready for your system, you
14will have to install from sources (section 2) instead.
15
3c3abcf1 16These operations are made for installing the LTTng 0.5.X tracer on a
17linux 2.6.X kernel. You will also find instructions for installation of
18LTTV 0.8.x : the Linux Trace Toolkit Viewer.
19
20To see the list of compatibilities between LTTng, ltt-control, LTTV, genevent
21and lttng-modules, please refer to :
22http://ltt.polymtl.ca > LTTng+LTTV versions compatibility
23
24
38e8e662 25
26The following lttng patch is necessary to have the tracing hooks in the kernel.
27The following ltt-control module controls the tracing.
28
29Required programs and librairies are assumed to be automatically installed in an
30installation with Debian or RPM packages. In the case of an installation from
31sources, the dependencies are listed.
32
d9cd3a2e 33
c96be0d0 34** Current development status **
35
36LTTng :
37supported architectures :
38Intel Pentium (UP/SMP) with TSC
2a4c796f 39ARM
c96be0d0 40
41LTTV :
42supported architectures :
43Intel i386 and better
d21695ed 44Intel 64 bits
c96be0d0 45PowerPC
46
47
48
af88bd8a 49Author : Mathieu Desnoyers, September 2005
2a4c796f 50Last update : March 13, 2006
d9cd3a2e 51
6c913994 52
53***********************************************************
54** Section 1 * Installation from Debian or RPM packages **
55***********************************************************
56
d21695ed 57** NOTE : RPM and debian packages are only made once a version has been
58 thoroughly tested. If they do not exist at the moment, please install from
d5118964 59 sources (see section 2 below). To see the list of compatibilities between
3c3abcf1 60 LTTng, ltt-control, LTTV, genevent and lttng-modules, please refer to
d5118964 61 http://ltt.polymtl.ca > LTTng+LTTV versions compatibility
d21695ed 62
63
c1298250 64* Install from RPM packages on Fedora Core 4 :
65
66Get LTTV RPM from :
67
68http://ltt.polymtl.ca/packages/fedora/RPMS
69
8c7a7394 70LTTV RPM are ready.
71
72LTTng kernel and lttng-modules RPM are available for some architectures (i586,
73i686). Feel free to help fix the spec files to have correct lttng-modules RPM
74package.
c1298250 75
76
77* Install from Deb packages on Debian :
6a2c1aed 78
79You can use the ltt.polymtl.ca apt source to get LTTV for Debian :
80
81Add the following two sources to your /etc/apt/sources.list :
82
83deb http://ltt.polymtl.ca/packages/debian experimental main
84deb-src http://ltt.polymtl.ca/packages/debian experimental main
85
5694ce4d 86
87* Install from precompiled binary packages (LTTV compiled only for i386, and
88 LTTng only for i686 smp), perform the following :
6a2c1aed 89
90su -
91apt-get update
92apt-get install lttv lttv-doc
8c7a7394 93apt-get install kernel-image-2.6.12-rc4-mm2-lttng-0.4.2
94apt-get install lttng-modules-modules-2.6.12-rc4-mm2-lttng-0.4.2
6a2c1aed 95 * note : the packages are signed by myself. I am not considered a trusted
96 Debian source yet, so warnings are normal.
97
5694ce4d 98Then, follow the section "Editing the system wide configuration" in section 2.
99
100* Create custom LTTV Debian packages
101
102Binary packages are only available for i386. If you want to create your own LTTV
103packages for other platforms, do :
6a2c1aed 104
5694ce4d 105su -
106cd /usr/src
78d521e3 107apt-get source lttv
8c7a7394 108cd lttv-0.6.9
78d521e3 109dpkg-buildpackage -rfakeroot
110
5694ce4d 111You should then have your LTTV .deb files created for your architecture.
112
113* Create custom LTTng packages
114
115For building LTTng Debian packages :
116
117su -
8c7a7394 118apt-get install kernel-source-2.6.12-rc4-mm2-lttng-0.4.2
5694ce4d 119cd /usr/src
8c7a7394 120bzip2 -cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2.tar.bz2 | tar xvof -
121cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2
5694ce4d 122make menuconfig (or xconfig or config) (customize your configuration)
123make-kpkg kernel_image
124
125You will then see your freshly created .deb in /usr/src. Install it with
126dpkg -i /usr/src/(image-name).deb
127
128You will also need to create a package for the lttng-modules :
129
130su -
131cd /usr/src
132apt-get source lttng-modules
8c7a7394 133cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2
5694ce4d 134make-kpkg --added_modules /usr/src/lttng-modules-0.3 modules_image
135
136You will then see your freshly created .deb in /usr/src. Install it with
137dpkg -i /usr/src/lttng-modules-modules-(your version).deb
138
6c913994 139
5694ce4d 140Then, follow the section "Editing the system wide configuration" in section 2.
6c913994 141
142
143***********************************************************
144** Section 2 * Installation from sources **
145***********************************************************
146
38e8e662 147* Prerequisites
148
149Tools needed to follow the package download steps :
150
151o wget
152o bzip2
153o gzip
154o tar
155
156You have to install the standard development librairies and programs necessary
157to compile a kernel :
158
159(from Documentation/Changes in the Linux kernel tree)
160o Gnu C 2.95.3 # gcc --version
161o Gnu make 3.79.1 # make --version
162o binutils 2.12 # ld -v
163o util-linux 2.10o # fdformat --version
164o module-init-tools 0.9.10 # depmod -V
165
166You might also want to have libncurses5 to have the text mode kernel
167configuration menu, but there are alternatives.
168
3c3abcf1 169Prerequisites for LTTV 0.x.x installation are :
38e8e662 170
860c0a03 171gcc 3.2 or better
172gtk 2.4 or better development libraries
173 (Debian : libgtk2.0, libgtk2.0-dev)
174 (Fedora : gtk2, gtk2-devel)
175 note : For Fedora users : this might require at least core 3 from Fedora,
176 or you might have to compile your own GTK2 library.
177glib 2.4 or better development libraries
178 (Debian : libglib2.0-0, libglib2.0-dev)
179 (Fedora : glib2, glib2-devel)
180libpopt development libraries
181 (Debian : libpopt0, libpopt-dev)
182 (Fedora : popt)
183libpango development libraries
184 (Debian : libpango1.0, libpango1.0-dev)
185 (Fedora : pango, pango-devel)
186libc6 development librairies
187 (Debian : libc6, libc6-dev)
188 (Fedora : glibc, glibc)
38e8e662 189
190
d9cd3a2e 191* Getting the LTTng packages
192
193su -
194mkdir /usr/src/lttng
195cd /usr/src/lttng
196(see http://ltt.polymtl.ca/lttng for package listing)
9c78dc8f 197wget http://ltt.polymtl.ca/lttng/lttng-modules-0.5.tar.bz2
3c3abcf1 198wget http://ltt.polymtl.ca/lttng/patch-2.6.15-lttng-0.x.xx.tar.bz2
199bzip2 -cd lttng-modules-0.x.tar.bz2 | tar xvof -
200bzip2 -cd patch-2.6.15-lttng-0.x.xx.tar.bz2 | tar xvof -
d9cd3a2e 201
202
203* Getting LTTng kernel sources
204
205su -
206cd /usr/src
80f4d0e1 207wget http://kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.15.tar.bz2
208bzip2 -cd linux-2.6.15.tar.bz2 | tar xvof -
209cd linux-2.6.15
3c3abcf1 210cat /usr/src/lttng/patch-2.6.15-lttng-0.x.xx* | patch -p1
d9cd3a2e 211cd ..
3c3abcf1 212mv linux-2.6.15 linux-2.6.15-lttng-0.x.xx
d9cd3a2e 213
214
215* Installing a LTTng kernel
216
217su -
3c3abcf1 218cd /usr/src/linux-2.6.15-lttng-0.x.xx
38e8e662 219make menuconfig (or make xconfig or make config)
220 Select the < Help > button if you are not familiar with kernel
221 configuration.
222 Items preceded by [*] means they has to be built into the kernel.
223 Items preceded by [M] means they has to be built as modules.
224 Items preceded by [ ] means they should be removed.
d21695ed 225 go to the "Instrumentation Support" section
38e8e662 226 Select the following options :
227 [*] Linux Trace Toolkit Instrumentation Support
d21695ed 228 <M> or <*> Linux Trace Toolkit Tracer
8ede3ed9 229 It makes no difference for the rest of the procedure whether the Tracer
230 is compiled built-in or as a module.
d21695ed 231 activate :
232 [*] Align Linux Trace Toolkit Traces
3c3abcf1 233 [*] Allow tracing from userspace
234 your choice (see < Help >) :
38e8e662 235 [ ] Activate Linux Trace Toolkit Heartbeat Timer
d21695ed 236 You may or may not activate instrumentation per facility. They are all
237 selected for logging by default. It can be used as a compile time filter to
238 enable/disable logging of events. It is useful to discard events with a
239 minimal impact on the system and especially useful for now, as the dynamic
240 filter has not been implemented yet.
38e8e662 241 Select <Exit>
242 Select <Exit>
243 Select <Yes>
02bc6879 244make
26d45a39 245make modules_install
8ede3ed9 246make install
916ec268 247
d9cd3a2e 248reboot
249
3c3abcf1 250 Select the Linux 2.6.15-lttng-0.x.xx kernel in your boot loader.
38e8e662 251
d9cd3a2e 252
253* Install the ltt-modules
254
255su -
3c3abcf1 256cd /usr/src/lttng/lttng-modules-0.xx
257KERNELDIR=/usr/src/linux-2.6.15-lttng-0.x.xx make
258KERNELDIR=/usr/src/linux-2.6.15-lttng-0.x.xx make modules_install
d9cd3a2e 259
5694ce4d 260
261* Editing the system wide configuration
262
263You must activate relayfs and specify a mount point. This is typically done in
264fstab such that it happens at boot time.
265
266If you have never used RelayFS before, these operation would do this for you :
267
268mkdir /mnt/relayfs
269cp /etc/fstab /etc/fstab.lttng.bkp
270echo "relayfs /mnt/relayfs relayfs rw 0 0" >> /etc/fstab
271
272then, rebooting or issuing the following command will activate relayfs :
273
274mount /mnt/relayfs
275
38e8e662 276You need to load the ltt-control module to be able to control tracing from user
277space. This is done by issuing the command :
8ede3ed9 278
d9cd3a2e 279modprobe ltt-control
280
9c78dc8f 281If you want to have complete information about the kernel state (including all
282the process names), you need to load the ltt-statedump module. This is done by
283issuing the command :
284
285modprobe ltt-statedump
286
38e8e662 287You can automate at boot time loading the ltt-control module by :
8ede3ed9 288
d9cd3a2e 289echo ltt-control >> /etc/modules
9c78dc8f 290echo ltt-statedump >> /etc/modules
d9cd3a2e 291
292
daa38dd5 293* Getting and installing the ltt-control package (on the traced machine)
d9cd3a2e 294
295su -
296cd /usr/src
3c3abcf1 297wget http://ltt.polymtl.ca/lttng/ltt-control-0.x-xxxx2006.tar.gz
298gzip -cd ltt-control-0.x-xxxx2006.tar.gz | tar xvof -
299cd ltt-control-0.x-xxxx2006
daa38dd5 300(refer to README to see the development libraries that must be installed on you
301system)
302./configure
303make
304make install
305
306
307* Getting and installing the LTTV package (on the visualisation machine, same or
308 different from the visualisation machine)
309
310su -
311cd /usr/src
3c3abcf1 312wget http://ltt.polymtl.ca/packages/LinuxTraceToolkitViewer-0.x.xx-xxxx2006.tar.gz
313gzip -cd LinuxTraceToolkitViewer-0.x.xx-xxxx2006.tar.gz | tar xvof -
314cd LinuxTraceToolkitViewer-0.x.xx-xxxx2006
36fcd0b7 315(refer to README to see the development libraries that must be installed on you
316system)
d9cd3a2e 317./configure
318make
319make install
320
6c913994 321
322
323
324***********************************************************
d1f19ac5 325** Section 3 * Using LTTng and LTTV **
6c913994 326***********************************************************
327
d1f19ac5 328* Use graphical LTTV to control tracing and analyse traces
d9cd3a2e 329
330lttv-gui (or /usr/local/bin/lttv-gui)
e44b6048 331 - Spot the "Tracing Control" icon : click on it
332 (it's a traffic light icon)
d9cd3a2e 333 - enter the root password
334 - click "start"
335 - click "stop"
336 - Yes
337 * You should now see a trace
338
d1f19ac5 339* Use text mode LTTng to control tracing
340
5e5b1de1 341The tracing can be controlled from a terminal by using the lttctl command (as
342root).
d1f19ac5 343
344Start tracing :
345
29f07f68 346lttctl -n trace -d -l /mnt/relayfs/ltt -t /tmp/trace
d1f19ac5 347
348Stop tracing and destroy trace channels :
349
350lttctl -n trace -R
351
352see lttctl --help for details.
353
354
6c913994 355* Use text mode LTTV
356
357Fell free to look in /usr/local/lib/lttv/plugins to see all the text and
358graphical plugins available.
359
360For example, a simple trace dump in text format is available with :
361
362lttv -m textDump -t /tmp/trace
363
364see lttv -m textDump --help for detailed command line options of textDump.
365
366
367
368
369***********************************************************
370** Section 4 * Adding new instrumentations with genevent **
371***********************************************************
d9cd3a2e 372
373* Getting and installing genevent
374
cb598ad7 375su -
d9cd3a2e 376cd /usr/src
3c3abcf1 377wget http://ltt.polymtl.ca/packages/genevent-0.xx.tar.gz
378gzip -cd genevent-0.xx.tar.gz | tar xvof -
379cd genevent-0.xx
d9cd3a2e 380make
381make install
382
383
384* Add new events to the kernel with genevent
385
386su -
387cd /usr/local/share/LinuxTraceToolkitViewer/facilities
388cp process.xml yourfacility.xml
389 * edit yourfacility.xml to fit your needs.
390cd /tmp
81685107 391/usr/local/bin/genevent /usr/local/share/LinuxTraceToolkitViewer/facilities/yourfacility.xml
d9cd3a2e 392cp ltt-facility-yourfacility.h ltt-facility-id-yourfacility.h \
3c3abcf1 393 /usr/src/linux-2.6.15-lttng-0.x.xx8/include/linux/ltt
d9cd3a2e 394cp ltt-facility-loader-yourfacility.c ltt-facility-loader-yourfacility.h \
3c3abcf1 395 /usr/src/linux-2.6.15-lttng-0.x.xx/ltt
d9cd3a2e 396 * edit the kernel file you want to instrument
397 - Add #include <linux/ltt/ltt-facility-yourfacility.h> at the beginning
398 of the file.
399 - Add a call to the tracing functions. See their names and parameters in
3c3abcf1 400 /usr/src/linux-2.6.15-lttng-0.x.xx/include/linux/ltt/ltt-facility-yourfacility.h
d9cd3a2e 401
402
403
This page took 0.067237 seconds and 4 git commands to generate.