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