Small fixes to lttng man pages (v2)
[lttng-tools.git] / doc / man / lttng.1
CommitLineData
6991b181
DG
1.TH "LTTNG" "1" "February 9, 2012" "" ""
2
3.SH "NAME"
4lttng \(em LTTng 2.0 tracer control command line tool
5
6.SH "SYNOPSIS"
7
8.PP
9.nf
10lttng [OPTIONS] <COMMAND>
11.fi
12.SH "DESCRIPTION"
13
14.PP
15The LTTng project aims at providing highly efficient tracing tools for Linux.
16It's tracers help tracking down performance issues and debugging problems
17involving multiple concurrent processes and threads. Tracing across multiple
18systems is also possible.
19
fa072eae 20The \fBlttng\fP command line tool from the lttng-tools package is used to control
6991b181
DG
21both kernel and user-space tracing. Every interactions with the tracer should
22be done by this tool or by the liblttng-ctl provided with the lttng-tools
23package.
24
25LTTng uses a session daemon (lttng-sessiond(8)), acting as a tracing registry,
26which permits you to interact with multiple tracers (kernel and user-space)
27inside the same container, a tracing session. Traces can be gathered from the
28kernel and/or instrumented applications (lttng-ust(3)). Aggregating and reading
29those traces is done using the babeltrace(1) text viewer.
30
31In order to trace the kernel, the session daemon needs to be running as root.
32LTTng provides the use of a \fBtracing group\fP (default: tracing). Whomever is
33in that group can interact with the root session daemon and thus trace the
34kernel. Session daemons can co-exist meaning that you can have a session daemon
fa072eae
YB
35running as Alice that can be used to trace her applications along side with a
36root daemon or even a Bob daemon. We highly recommend to start the session
6991b181
DG
37daemon at boot time for stable and long term tracing.
38
39Every user-space applications instrumented with lttng-ust(3), will
40automatically register to the session daemon. This feature gives you the
41ability to list available traceable applications and tracepoints on a per user
42basis. (See \fBlist\fP command).
43.SH "OPTIONS"
44
45.PP
46This program follow the usual GNU command line syntax with long options starting with
47two dashes. Below is a summary of the available options.
48.PP
49
50.TP
c9e32613 51.BR "\-h, \-\-help"
6991b181
DG
52Show summary of possible options and commands.
53.TP
c9e32613 54.BR "\-v, \-\-verbose"
6991b181 55Increase verbosity.
fa072eae
YB
56Three levels of verbosity are available which are triggered by putting additionnal v to
57the option (\-vv or \-vvv)
6991b181 58.TP
c9e32613 59.BR "\-q, \-\-quiet"
6991b181
DG
60Suppress all messages (even errors).
61.TP
c9e32613 62.BR "\-g, \-\-group NAME"
6991b181
DG
63Set unix tracing group name. (default: tracing)
64.TP
c9e32613 65.BR "\-n, \-\-no-sessiond"
6991b181
DG
66Don't automatically spawn a session daemon.
67.TP
c9e32613 68.BR "\-\-sessiond\-path"
6991b181
DG
69Set session daemon full binary path.
70.TP
c9e32613 71.BR "\-\-list\-options"
6991b181
DG
72Simple listing of lttng options.
73.TP
c9e32613 74.BR "\-\-list\-commands"
6991b181
DG
75Simple listing of lttng commands.
76.SH "COMMANDS"
77
78.TP
79\fBadd-context\fP
80.nf
81Add context to event(s) and/or channel(s).
82
83A context is basically extra information appended to a channel or event. For
84instance, you could ask the tracer to add the PID information within the
85"sched_switch" kernel event. You can also add performance monitoring unit
86counters (perf PMU) using the perf kernel API).
87
88For example, this command will add the context information 'prio' and two perf
89counters (hardware branch misses and cache misses), to all events in the trace
90data output:
91
c9e32613 92# lttng add-context \-k \-t prio \-t perf:branch-misses \-t perf:cache-misses
6991b181 93
c9e32613 94Please take a look at the help (\-h/\-\-help) for a detailed list of available
6991b181
DG
95contexts.
96
c9e32613 97If no channel and no event is given (\-c/\-e), the context is added to all
6991b181 98channels (which applies automatically to all events in that channel). Otherwise
c9e32613 99the context will be added only to the channel (\-c) and/or event (\-e) indicated.
6991b181 100
c9e32613 101If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
6991b181
DG
102file.
103.fi
104
105.B OPTIONS:
106
107.nf
c9e32613 108\-h, \-\-help
6991b181 109 Show summary of possible options and commands.
c9e32613 110\-s, \-\-session NAME
6991b181 111 Apply on session name.
c9e32613 112\-c, \-\-channel NAME
6991b181 113 Apply on channel name.
c9e32613 114\-e, \-\-event NAME
6991b181 115 Apply on event name.
c9e32613 116\-k, \-\-kernel
6991b181 117 Apply for the kernel tracer
c9e32613 118\-u, \-\-userspace
6991b181 119 Apply for the user-space tracer
c9e32613 120\-t, \-\-type TYPE
6991b181 121 Context type. You can repeat this option on the command line. Please
c9e32613 122 use "lttng add-context \-h" to list all available types.
6991b181
DG
123.fi
124
125.IP
126
127.IP "\fBcalibrate\fP"
128.nf
129Quantify LTTng overhead
130
131The LTTng calibrate command can be used to find out the combined average
132overhead of the LTTng tracer and the instrumentation mechanisms used. This
133overhead can be calibrated in terms of time or using any of the PMU performance
134counter available on the system.
135
136For now, the only calibration implemented is that of the kernel function
137instrumentation (kretprobes).
138
139* Calibrate kernel function instrumentation
140
141Let's use an example to show this calibration. We use an i7 processor with 4
142general-purpose PMU registers. This information is available by issuing dmesg,
143looking for "generic registers".
144
145This sequence of commands will gather a trace executing a kretprobe hooked on
146an empty function, gathering PMU counters LLC (Last Level Cache) misses
c9e32613 147information (see lttng add-context \-\-help to see the list of available PMU
6991b181
DG
148counters).
149
150# lttng create calibrate-function
c9e32613
DG
151# lttng enable-event calibrate \-\-kernel \-\-function lttng_calibrate_kretprobe
152# lttng add-context \-\-kernel \-t perf:LLC-load-misses \-t perf:LLC-store-misses \\
153 \-t perf:LLC-prefetch-misses
6991b181
DG
154# lttng start
155# for a in $(seq 1 10); do \\
c9e32613 156 lttng calibrate \-\-kernel \-\-function;
6991b181
DG
157 done
158# lttng destroy
c9e32613 159# babeltrace $(ls \-1drt ~/lttng-traces/calibrate-function-* | tail \-n 1)
6991b181
DG
160
161The output from babeltrace can be saved to a text file and opened in a
162spreadsheet (e.g. oocalc) to focus on the per-PMU counter delta between
163consecutive "calibrate_entry" and "calibrate_return" events. Note that these
164counters are per-CPU, so scheduling events would need to be present to account
165for migration between CPU. Therefore, for calibration purposes, only events
166staying on the same CPU must be considered.
167
168The average result, for the i7, on 10 samples:
169
170 Average Std.Dev.
171perf_LLC_load_misses: 5.0 0.577
172perf_LLC_store_misses: 1.6 0.516
173perf_LLC_prefetch_misses: 9.0 14.742
174
175As we can notice, the load and store misses are relatively stable across runs
176(their standard deviation is relatively low) compared to the prefetch misses.
177We can conclude from this information that LLC load and store misses can be
178accounted for quite precisely, but prefetches within a function seems to behave
179too erratically (not much causality link between the code executed and the CPU
180prefetch activity) to be accounted for.
181.fi
182
183.B OPTIONS:
184
185.nf
c9e32613 186\-h, \-\-help
6991b181 187 Show summary of possible options and commands.
c9e32613 188\-k, \-\-kernel
6991b181 189 Apply for the kernel tracer
c9e32613 190\-u, \-\-userspace
6991b181 191 Apply for the user-space tracer
c9e32613 192\-\-function
6991b181
DG
193 Dynamic function entry/return probe (default)
194.fi
195
196.IP
197
198.IP "\fBcreate\fP [OPTIONS] [NAME]
199.nf
200Create tracing session.
201
202A tracing session contains channel(s) which contains event(s). It is domain
203agnostic meaning that you can enable channels and events for either the
204user-space tracer and/or the kernel tracer. It acts like a container
205aggregating multiple tracing sources.
206
207On creation, a \fB.lttngrc\fP file is created in your $HOME directory
208containing the current session name. If NAME is omitted, a session name is
fa072eae 209automatically created having this form: 'auto-yyyymmdd-hhmmss'.
6991b181 210
c9e32613 211If no \fB\-o, \-\-output\fP is specified, the traces will be written in
6991b181
DG
212$HOME/lttng-traces.
213.fi
214
215.B OPTIONS:
216
217.nf
c9e32613 218\-h, \-\-help
6991b181 219 Show summary of possible options and commands.
c9e32613 220\-\-list-options
6991b181 221 Simple listing of options
c9e32613 222\-o, \-\-output PATH
6991b181
DG
223 Specify output path for traces
224.fi
225
226.IP
227
228.IP "\fBdestroy\fP [OPTIONS] [NAME]"
229.nf
230Teardown tracing session
231
232Free memory on the session daemon and tracer side. It's gone!
233
234If NAME is omitted, the session name is taken from the .lttngrc file.
235.fi
236
237.B OPTIONS:
238
239.nf
c9e32613 240\-h, \-\-help
6991b181 241 Show summary of possible options and commands.
c9e32613 242\-\-list-options
6991b181
DG
243 Simple listing of options
244.fi
245
246.IP
247
248.IP "\fBenable-channel\fP NAME[,NAME2,...] [-k|-u] [OPTIONS]"
249.nf
250Enable tracing channel
251
c9e32613 252If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
6991b181
DG
253file.
254.fi
255
256.B OPTIONS:
257
258.nf
c9e32613 259\-h, \-\-help
6991b181 260 Show this help
c9e32613 261\-\-list-options
6991b181 262 Simple listing of options
c9e32613 263\-s, \-\-session
6991b181 264 Apply on session name
c9e32613 265\-k, \-\-kernel
6991b181 266 Apply to the kernel tracer
c9e32613 267\-u, \-\-userspace
6991b181
DG
268 Apply to the user-space tracer
269
c9e32613 270\-\-discard
6991b181 271 Discard event when subbuffers are full (default)
c9e32613 272\-\-overwrite
6991b181 273 Flight recorder mode : overwrites events when subbuffers are full
c9e32613 274\-\-subbuf-size
6991b181 275 Subbuffer size in bytes (default: 4096, kernel default: 262144)
c9e32613 276\-\-num-subbuf
9f778c9a 277 Number of subbufers (default: 4)
93e6c8a0 278 Needs to be a power of 2 for kernel and ust tracers
c9e32613 279\-\-switch-timer
6991b181 280 Switch subbuffer timer interval in usec (default: 0)
93e6c8a0 281 Needs to be a power of 2 for kernel and ust tracers
c9e32613 282\-\-read-timer
6991b181
DG
283 Read timer interval in usec (default: 200)
284.fi
285
286.IP
287
288.IP "\fBenable-event\fP NAME[,NAME2,...] [-k|-u] [OPTIONS]"
289.nf
290Enable tracing event
291
c9e32613 292A tracing event is always assigned to a channel. If \fB\-c, \-\-channel\fP is
6991b181 293omitted, a default channel named '\fBchannel0\fP' is created and the event is
c9e32613 294added to it. For the user-space tracer, using \fB\-a, \-\-all\fP is the same as
6991b181
DG
295using the wildcard "*".
296
c9e32613 297If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
6991b181
DG
298file.
299.fi
300
301.B OPTIONS:
302
303.nf
c9e32613 304\-h, \-\-help
6991b181 305 Show summary of possible options and commands.
c9e32613 306\-\-list-options
6991b181 307 Simple listing of options
c9e32613 308\-s, \-\-session
6991b181 309 Apply on session name
c9e32613 310\-c, \-\-channel
6991b181 311 Apply on channel name
c9e32613 312\-a, \-\-all
e08bff8d 313 Enable all tracepoints and syscalls
c9e32613 314\-k, \-\-kernel
6991b181 315 Apply for the kernel tracer
c9e32613 316\-u, \-\-userspace
6991b181
DG
317 Apply for the user-space tracer
318
c9e32613 319\-\-tracepoint
6991b181
DG
320 Tracepoint event (default)
321 - userspace tracer supports wildcards at end of string. Don't forget to
322 quote to deal with bash expansion.
323 e.g.:
324 "*"
325 "app_component:na*"
c9e32613 326\-\-loglevel
6991b181 327 Tracepoint loglevel
c9e32613 328\-\-probe [addr | symbol | symbol+offset]
6991b181
DG
329 Dynamic probe. Addr and offset can be octal (0NNN...), decimal (NNN...)
330 or hexadecimal (0xNNN...)
c9e32613 331\-\-function [addr | symbol | symbol+offset]
6991b181
DG
332 Dynamic function entry/return probe. Addr and offset can be octal
333 (0NNN...), decimal (NNN...) or hexadecimal (0xNNN...)
c9e32613 334\-\-syscall
6991b181
DG
335 System call event
336 Enabling syscalls tracing (kernel tracer), you will not be able to disable them
337 with disable-event. This is a known limitation. You can disable the entire
338 channel to do the trick.
339.fi
340
c9e32613 341.IP "\fBdisable-channel\fP NAME[,NAME2,...] [\-k|\-u] [OPTIONS]"
6991b181
DG
342.nf
343Disable tracing channel
344
345Disabling a channel makes all event(s) in that channel to stop tracing. You can
346enable it back by calling \fBlttng enable-channel NAME\fP again.
347
c9e32613 348If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
6991b181
DG
349file.
350.fi
351
352.B OPTIONS:
353
354.nf
c9e32613 355\-h, \-\-help
6991b181 356 Show summary of possible options and commands.
c9e32613 357\-\-list-options
6991b181 358 Simple listing of options
c9e32613 359\-s, \-\-session
6991b181 360 Apply on session name
c9e32613 361\-k, \-\-kernel
6991b181 362 Apply for the kernel tracer
c9e32613 363\-u, \-\-userspace
6991b181
DG
364 Apply for the user-space tracer
365.fi
366
c9e32613 367.IP "\fBdisable-event\fP NAME[,NAME2,...] [\-k|\-u] [OPTIONS]"
6991b181
DG
368.nf
369Disable tracing event
370
371The event, once disabled, can be re-enabled by calling \fBlttng enable-event
372NAME\fP again.
373
c9e32613 374If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
6991b181
DG
375file.
376.fi
377
378.B OPTIONS:
379
380.nf
c9e32613 381\-h, \-\-help
6991b181 382 Show summary of possible options and commands.
c9e32613 383\-\-list-options
6991b181 384 Simple listing of options
c9e32613 385\-s, \-\-session
6991b181 386 Apply on session name
c9e32613 387\-k, \-\-kernel
6991b181 388 Apply for the kernel tracer
c9e32613 389\-u, \-\-userspace
6991b181
DG
390 Apply for the user-space tracer
391.fi
392
c9e32613 393.IP "\fBlist\fP [\-k|\-u] [SESSION [SESSION_OPTIONS]]"
6991b181 394.nf
c9e32613 395List tracing session information.
6991b181
DG
396
397With no arguments, it will list available tracing session(s).
398
fa072eae
YB
399With the session name, it will display the details of the session including
400the trace file path, the associated channels and their state (activated
401and deactivated), the activated events and more.
402
c9e32613 403With \-k alone, it will list all available kernel events (except the system
6991b181 404calls events).
c9e32613
DG
405With \-u alone, it will list all available user-space events from registered
406applications. Here is an example of 'lttng list \-u':
6991b181
DG
407
408PID: 7448 - Name: /tmp/lttng-ust/tests/hello/.libs/lt-hello
409 ust_tests_hello:tptest_sighandler (type: tracepoint)
410 ust_tests_hello:tptest (type: tracepoint)
411
412You can now enable any event listed by using the name :
413\fBust_tests_hello:tptest\fP.
414.fi
415
416.B OPTIONS:
417
418.nf
c9e32613 419\-h, \-\-help
6991b181 420 Show summary of possible options and commands.
c9e32613 421\-\-list-options
6991b181 422 Simple listing of options
c9e32613 423\-k, \-\-kernel
6991b181 424 Select kernel domain (FIXME : apparition de la notion de "domain" ici)
c9e32613 425\-u, \-\-userspace
6991b181
DG
426 Select user-space domain.
427
428Session options:
c9e32613 429\-c, \-\-channel NAME
6991b181 430 List details of a channel
c9e32613 431\-d, \-\-domain
6991b181
DG
432 List available domain(s)
433.fi
434
435.IP "\fBset-session\fP NAME"
436.nf
437Set current session name
438
439Will change the session name in the .lttngrc file.
440.fi
441
442.B OPTIONS:
443
444.nf
c9e32613 445\-h, \-\-help
6991b181 446 Show summary of possible options and commands.
c9e32613 447\-\-list-options
6991b181
DG
448 Simple listing of options
449.fi
450
451.IP
452
453.IP "\fBstart\fP [OPTIONS] [NAME]"
454.nf
455Start tracing
456
457It will start tracing for all tracers for a specific tracing session.
458
459If NAME is omitted, the session name is taken from the .lttngrc file.
460.fi
461
462.B OPTIONS:
463
464.nf
c9e32613 465\-h, \-\-help
6991b181 466 Show summary of possible options and commands.
c9e32613 467\-\-list-options
6991b181
DG
468 Simple listing of options
469.fi
470
471.IP
472
473.IP "\fBstop\fP [OPTIONS] [NAME]"
474.nf
475Stop tracing
476
477It will stop tracing for all tracers for a specific tracing session.
478
479If NAME is omitted, the session name is taken from the .lttngrc file.
480.fi
481
482.B OPTIONS:
483
484.nf
c9e32613 485\-h, \-\-help
6991b181 486 Show summary of possible options and commands.
c9e32613 487\-\-list-options
6991b181
DG
488 Simple listing of options
489.fi
490
491.IP
492
493.IP "\fBversion\fP"
494.nf
495Show version information
496.fi
497
498.B OPTIONS:
499
500.nf
c9e32613 501\-h, \-\-help
6991b181 502 Show summary of possible options and commands.
c9e32613 503\-\-list-options
6991b181
DG
504 Simple listing of options
505.fi
506
507.IP
508
509.IP "\fBview\fP [SESSION_NAME] [OPTIONS]"
510.nf
511View traces of a tracing session
512
513By default, the babeltrace viewer will be used for text viewing.
514
fa072eae
YB
515If SESSION_NAME is omitted, the session name is taken from the .lttngrc file.
516
6991b181
DG
517.fi
518
519.B OPTIONS:
520
521.nf
c9e32613 522\-h, \-\-help
6991b181 523 Show this help
c9e32613 524\-\-list-options
6991b181 525 Simple listing of options
c9e32613 526\-t, \-\-trace-path PATH
6991b181 527 Trace directory path for the viewer
c9e32613 528\-e, \-\-viewer CMD
6991b181
DG
529 Specify viewer and/or options to use
530 This will completely override the default viewers so
531 please make sure to specify the full command. The trace
532 directory path of the session will be appended at the end
533 to the arguments
534.fi
535
536.SH "ENVIRONMENT VARIABLES"
537
538.PP
539Note that all command line options override environment variables.
540.PP
541
542.PP
543.IP "LTTNG_SESSIOND_PATH_ENV"
c9e32613
DG
544Allows one to specify the full session daemon binary path to lttng command line
545tool. You can also use \-\-sessiond-path option having the same effect.
6991b181
DG
546.SH "SEE ALSO"
547
548.PP
549babeltrace(1), lttng-ust(3), lttng-sessiond(8)
550.PP
551.SH "BUGS"
552
553.PP
fa072eae 554No show stopper bugs are known yet in this version.
6991b181
DG
555
556If you encounter any issues or usability problem, please report it on our
557mailing list <lttng-dev@lists.lttng.org> to help improve this project.
558.SH "CREDITS"
559
560.PP
c9e32613 561lttng is distributed under the GNU General Public License version 2. See the file
6991b181
DG
562COPYING for details.
563.PP
564A Web site is available at http://lttng.org for more information on the LTTng
565project.
566.PP
567You can also find our git tree at http://git.lttng.org.
568.PP
569Mailing lists for support and development: <lttng-dev@lists.lttng.org>.
570.PP
571You can find us on IRC server irc.oftc.net (OFTC) in #lttng.
572.PP
573.SH "THANKS"
574
575.PP
576Thanks to Yannick Brosseau without whom this project would never have been so
577lean and mean! Also thanks to the Ericsson teams working on tracing which
fa072eae 578helped us greatly with detailed bug reports and unusual test cases.
6991b181
DG
579
580Thanks to our beloved packager Alexandre Montplaisir-Goncalves (Ubuntu and PPA
581maintainer) and Jon Bernard for our Debian packages.
582
583Special thanks to Michel Dagenais and the DORSAL laboratory at Polytechnique de
584Montreal for the LTTng journey.
c9e32613 585.PP
6991b181
DG
586.SH "AUTHORS"
587
588.PP
589lttng-tools was originally written by Mathieu Desnoyers, Julien Desfossez and
590David Goulet. More people have since contributed to it. It is currently
591maintained by David Goulet <dgoulet@efficios.com>.
592.PP
This page took 0.048218 seconds and 4 git commands to generate.