add c2 facility
[lttv.git] / ltt / branches / poly / QUICKSTART
... / ...
CommitLineData
1
2QUICKSTART
3
4How to use LTTng and LTTV in a few lines :
5
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
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
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
33
34** Current development status **
35
36LTTng :
37supported architectures :
38Intel Pentium (UP/SMP) with TSC
39ARM
40
41LTTV :
42supported architectures :
43Intel i386 and better
44Intel 64 bits
45PowerPC
46
47
48
49Author : Mathieu Desnoyers, September 2005
50Last update : March 13, 2006
51
52
53***********************************************************
54** Section 1 * Installation from Debian or RPM packages **
55***********************************************************
56
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
59 sources (see section 2 below). To see the list of compatibilities between
60 LTTng, ltt-control, LTTV, genevent and lttng-modules, please refer to
61 http://ltt.polymtl.ca > LTTng+LTTV versions compatibility
62
63
64* Install from RPM packages on Fedora Core 4 :
65
66Get LTTV RPM from :
67
68http://ltt.polymtl.ca/packages/fedora/RPMS
69
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.
75
76
77* Install from Deb packages on Debian :
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
86
87* Install from precompiled binary packages (LTTV compiled only for i386, and
88 LTTng only for i686 smp), perform the following :
89
90su -
91apt-get update
92apt-get install lttv lttv-doc
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
95 * note : the packages are signed by myself. I am not considered a trusted
96 Debian source yet, so warnings are normal.
97
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 :
104
105su -
106cd /usr/src
107apt-get source lttv
108cd lttv-0.6.9
109dpkg-buildpackage -rfakeroot
110
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 -
118apt-get install kernel-source-2.6.12-rc4-mm2-lttng-0.4.2
119cd /usr/src
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
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
133cd kernel-source-2.6.12-rc4-mm2-lttng-0.4.2
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
139
140Then, follow the section "Editing the system wide configuration" in section 2.
141
142
143***********************************************************
144** Section 2 * Installation from sources **
145***********************************************************
146
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
169Prerequisites for LTTV 0.x.x installation are :
170
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)
189
190
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)
197wget http://ltt.polymtl.ca/lttng/lttng-modules-0.5.tar.bz2
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 -
201
202
203* Getting LTTng kernel sources
204
205su -
206cd /usr/src
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
210cat /usr/src/lttng/patch-2.6.15-lttng-0.x.xx* | patch -p1
211cd ..
212mv linux-2.6.15 linux-2.6.15-lttng-0.x.xx
213
214
215* Installing a LTTng kernel
216
217su -
218cd /usr/src/linux-2.6.15-lttng-0.x.xx
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.
225 go to the "Instrumentation Support" section
226 Select the following options :
227 [*] Linux Trace Toolkit Instrumentation Support
228 <M> or <*> Linux Trace Toolkit Tracer
229 It makes no difference for the rest of the procedure whether the Tracer
230 is compiled built-in or as a module.
231 activate :
232 [*] Align Linux Trace Toolkit Traces
233 [*] Allow tracing from userspace
234 your choice (see < Help >) :
235 [ ] Activate Linux Trace Toolkit Heartbeat Timer
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.
241 Select <Exit>
242 Select <Exit>
243 Select <Yes>
244make
245make modules_install
246make install
247
248reboot
249
250 Select the Linux 2.6.15-lttng-0.x.xx kernel in your boot loader.
251
252
253* Install the ltt-modules
254
255su -
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
259
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
276You need to load the ltt-control module to be able to control tracing from user
277space. This is done by issuing the command :
278
279modprobe ltt-control
280
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
287You can automate at boot time loading the ltt-control module by :
288
289echo ltt-control >> /etc/modules
290echo ltt-statedump >> /etc/modules
291
292
293* Getting and installing the ltt-control package (on the traced machine)
294
295su -
296cd /usr/src
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
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
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
315(refer to README to see the development libraries that must be installed on you
316system)
317./configure
318make
319make install
320
321
322
323
324***********************************************************
325** Section 3 * Using LTTng and LTTV **
326***********************************************************
327
328* Use graphical LTTV to control tracing and analyse traces
329
330lttv-gui (or /usr/local/bin/lttv-gui)
331 - Spot the "Tracing Control" icon : click on it
332 (it's a traffic light icon)
333 - enter the root password
334 - click "start"
335 - click "stop"
336 - Yes
337 * You should now see a trace
338
339* Use text mode LTTng to control tracing
340
341The tracing can be controlled from a terminal by using the lttctl command (as
342root).
343
344Start tracing :
345
346lttctl -n trace -d -l /mnt/relayfs/ltt -t /tmp/trace
347
348Stop tracing and destroy trace channels :
349
350lttctl -n trace -R
351
352see lttctl --help for details.
353
354
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***********************************************************
372
373* Getting and installing genevent
374
375su -
376cd /usr/src
377wget http://ltt.polymtl.ca/packages/genevent-0.xx.tar.gz
378gzip -cd genevent-0.xx.tar.gz | tar xvof -
379cd genevent-0.xx
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
391/usr/local/bin/genevent /usr/local/share/LinuxTraceToolkitViewer/facilities/yourfacility.xml
392cp ltt-facility-yourfacility.h ltt-facility-id-yourfacility.h \
393 /usr/src/linux-2.6.15-lttng-0.x.xx8/include/linux/ltt
394cp ltt-facility-loader-yourfacility.c ltt-facility-loader-yourfacility.h \
395 /usr/src/linux-2.6.15-lttng-0.x.xx/ltt
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
400 /usr/src/linux-2.6.15-lttng-0.x.xx/include/linux/ltt/ltt-facility-yourfacility.h
401
402
403
This page took 0.029544 seconds and 4 git commands to generate.