.TH "LTTNG" "1" "December 3rd, 2012" "" ""
.SH "NAME"
-lttng \(em LTTng 2.1.x tracer control command line tool
+lttng \(em LTTng 2.x tracer control command line tool
.SH "SYNOPSIS"
Simple listing of lttng commands.
.SH "COMMANDS"
-.TP
-\fBadd-context\fP
-.nf
+.PP
+\fBadd-context\fP [OPTIONS]
+.RS
Add context to event(s) and/or channel(s).
A context is basically extra information appended to a channel. For instance,
counters (hardware branch misses and cache misses), to all events in the trace
data output:
-# lttng add-context \-k \-t prio \-t perf:branch-misses \-t perf:cache-misses
+.nf
+# lttng add-context \-k \-t prio \-t perf:branch-misses \\
+ \-t perf:cache-misses
+.fi
Please take a look at the help (\-h/\-\-help) for a detailed list of available
contexts.
-If no channel is given (\-c), the context is added to all channels. Otherwise
-the context will be added only to the given channel (\-c).
+If no channel is given (\-c), the context is added to all channels that were
+already enabled. If the session has no channel, a default channel is created.
+Otherwise the context will be added only to the given channel (\-c).
If \fB\-s, \-\-session\fP is omitted, the session name is taken from the .lttngrc
file.
-.fi
.B OPTIONS:
-.nf
-\-h, \-\-help
- Show summary of possible options and commands.
-\-s, \-\-session NAME
- Apply on session name.
-\-c, \-\-channel NAME
- Apply on channel name.
-\-k, \-\-kernel
- Apply for the kernel tracer
-\-u, \-\-userspace
- Apply for the user-space tracer
-\-t, \-\-type TYPE
- Context type. You can repeat this option on the command line. Please
- use "lttng add-context \-h" to list all available types.
-.fi
-
-.IP
+.TP
+.BR "\-h, \-\-help"
+Show summary of possible options and commands.
+.TP
+.BR "\-s, \-\-session NAME"
+Apply on session name.
+.TP
+.BR "\-c, \-\-channel NAME"
+Apply on channel name.
+.TP
+.BR "\-k, \-\-kernel"
+Apply for the kernel tracer
+.TP
+.BR "\-u, \-\-userspace"
+Apply for the user-space tracer
+.TP
+.BR "\-t, \-\-type TYPE"
+Context type. You can repeat this option on the command line. Please
+use "lttng add-context \-h" to list all available types.
+.RE
+.PP
-.IP "\fBcalibrate\fP"
-.nf
+.PP
+\fBcalibrate\fP [OPTIONS]
+.RS
Quantify LTTng overhead
The LTTng calibrate command can be used to find out the combined average
information (see lttng add-context \-\-help to see the list of available PMU
counters).
+.nf
# lttng create calibrate-function
-# lttng enable-event calibrate \-\-kernel \-\-function lttng_calibrate_kretprobe
-# lttng add-context \-\-kernel \-t perf:LLC-load-misses \-t perf:LLC-store-misses \\
- \-t perf:LLC-prefetch-misses
+# lttng enable-event calibrate \-\-kernel \\
+ \-\-function lttng_calibrate_kretprobe
+# lttng add-context \-\-kernel \-t perf:LLC-load-misses \\
+ \-t perf:LLC-store-misses \\
+ \-t perf:LLC-prefetch-misses
# lttng start
# for a in $(seq 1 10); do \\
lttng calibrate \-\-kernel \-\-function;
done
# lttng destroy
-# babeltrace $(ls \-1drt ~/lttng-traces/calibrate-function-* | tail \-n 1)
+# babeltrace $(ls \-1drt ~/lttng-traces/calibrate-function-* \\
+ | tail \-n 1)
+.fi
The output from babeltrace can be saved to a text file and opened in a
spreadsheet (e.g. oocalc) to focus on the per-PMU counter delta between
The average result, for the i7, on 10 samples:
+.nf
Average Std.Dev.
perf_LLC_load_misses: 5.0 0.577
perf_LLC_store_misses: 1.6 0.516
perf_LLC_prefetch_misses: 9.0 14.742
+.fi
As we can notice, the load and store misses are relatively stable across runs
(their standard deviation is relatively low) compared to the prefetch misses.
accounted for quite precisely, but prefetches within a function seems to behave
too erratically (not much causality link between the code executed and the CPU
prefetch activity) to be accounted for.
-.fi
.B OPTIONS:
-.nf
-\-h, \-\-help
- Show summary of possible options and commands.
-\-k, \-\-kernel
- Apply for the kernel tracer
-\-u, \-\-userspace
- Apply for the user-space tracer
-\-\-function
- Dynamic function entry/return probe (default)
-.fi
-
-.IP
+.TP
+.BR "\-h, \-\-help"
+Show summary of possible options and commands.
+.TP
+.BR "\-k, \-\-kernel"
+Apply for the kernel tracer
+.TP
+.BR "\-u, \-\-userspace"
+Apply for the user-space tracer
+.TP
+.BR "\-\-function"
+Dynamic function entry/return probe (default)
+.RE
+.PP
-.IP "\fBcreate\fP [NAME] [OPTIONS]
-.nf
+.PP
+.IP \fBcreate\fP [NAME] [OPTIONS]
+.RS
Create tracing session.
A tracing session contains channel(s) which contains event(s). It is domain
If no \fB\-o, \-\-output\fP is specified, the traces will be written in
$HOME/lttng-traces.
-.fi
+
+The $HOME environment variable can be overridden by defining the environment
+variable LTTNG_HOME. This is useful when the user running the commands has
+a non-writeable home directory.
.B OPTIONS:
-.nf
-\-h, \-\-help
- Show summary of possible options and commands.
-\-\-list-options
- Simple listing of options
-\-o, \-\-output PATH
- Specify output path for traces
+.TP
+.BR "\-h, \-\-help"
+Show summary of possible options and commands.
+.TP
+.BR "\-\-list-options"
+Simple listing of options
+.TP
+.BR "\-o, \-\-output PATH"
+Specify output path for traces
+.TP
+.BR "\-\-no-output"
+Traces will not be outputed
+.TP
+.BR "\-\-snapshot"
+Set the session in snapshot mode. Created in no-output mode and uses the
+URL, if one, as the default snapshot output. Every channel will be set
+in overwrite mode and with mmap output (splice not supported).
+.TP
+.BR "\-U, \-\-set-url=URL"
+Set URL for the consumer output destination. It is persistent for the
+session lifetime. Redo the command to change it. This will set both data
+and control URL for network.
+.TP
+.BR "\-C, \-\-ctrl-url=URL"
+Set control path URL. (Must use -D also)
+.TP
+.BR "\-D, \-\-data-url=URL"
+Set data path URL. (Must use -C also)
+.PP
Using these options, each API call can be controlled individually. For
instance, \-C does not enable the consumer automatically. You'll need the \-e
option for that.
-\-U, \-\-set-url=URL
- Set URL for the consumer output destination. It is persistent for the
- session lifetime. Redo the command to change it. This will set both
- data and control URL for network.
-\-C, \-\-ctrl-url=URL
- Set control path URL. (Must use -D also)
-\-D, \-\-data-url=URL
- Set data path URL. (Must use -C also)
-
.B URL FORMAT:
proto://[HOST|IP][:PORT1[:PORT2]][/TRACE_PATH]
Supported protocols are (proto):
-> file://...
- Local filesystem full path.
+.TP
+.BR "file://..."
+Local filesystem full path.
-> net://...
- This will use the default network transport layer which is TCP for both
- control (PORT1) and data port (PORT2). The default ports are
- respectively 5342 and 5343. Note that net[6]:// is not yet supported.
+.TP
+.BR "net://..."
+This will use the default network transport layer which is TCP for both
+control (PORT1) and data port (PORT2). The default ports are
+respectively 5342 and 5343. Note that net[6]:// is not yet supported.
-> tcp[6]://...
- Can only be used with -C and -D together
+.TP
+.BR "tcp[6]://..."
+Can only be used with -C and -D together
NOTE: IPv6 address MUST be enclosed in brackets '[]' (rfc2732)
.B EXAMPLES:
+.nf
# lttng create -U net://192.168.1.42
+.fi
Uses TCP and default ports for the given destination.
+.nf
# lttng create -U net6://[fe80::f66d:4ff:fe53:d220]
+.fi
Uses TCP, default ports and IPv6.
+.nf
# lttng create s1 -U net://myhost.com:3229
-Create session s1 and set its consumer to myhost.com on port 3229 for control.
.fi
+Create session s1 and set its consumer to myhost.com on port 3229 for control.
+.RE
+.PP
-.IP
.IP "\fBdestroy\fP [OPTIONS] [NAME]"
.nf
file.
It is important to note that if a certain type of buffers is used, the session
-will be set with that type and all other subsequent channel need to have the
+will be set with that type and all other subsequent channel needs to have the
same type.
+
+Note that once the session has been started and enabled on the tracer side,
+it's not possible anymore to enable a new channel for that session.
.fi
.B OPTIONS:
\-\-overwrite
Flight recorder mode : overwrites events when subbuffers are full
\-\-subbuf-size SIZE
- Subbuffer size in bytes {+k,+M,+G} (default: 4096, kernel default: 262144)
- Needs to be a power of 2 for both tracers
+ Subbuffer size in bytes {+k,+M,+G}
+ (default UST uid: 131072, UST pid: 4096, kernel: 262144, metadata: 4096)
+ Rounded up to the next power of 2.
+
+ The minimum subbuffer size, for each tracer, is the max value between
+ the default above and the system page size. You can issue this command
+ to get the current page size on your system: \fB$ getconf PAGE_SIZE\fP
\-\-num-subbuf NUM
- Number of subbuffers (default: 4)
- Needs to be a power of 2 for both tracers
+ Number of subbuffers. (default UST uid: 4, UST pid: 4, kernel: 4, metadata: 2)
+ Rounded up to the next power of 2.
\-\-switch-timer USEC
- Switch subbuffer timer interval in µsec (default: 0)
+ Switch subbuffer timer interval in µsec.
+ (default UST uid: 0, UST pid: 0, kernel: 0, metadata: 0)
\-\-read-timer USEC
- Read timer interval in µsec (UST default: 0, kernel default: 200000)
+ Read timer interval in µsec.
+ (default UST uid: 0, UST pid: 0, kernel: 200000, metadata: 0)
\-\-output TYPE
Channel output type. Possible values: mmap, splice
+ (default UST uid: mmap, UST pid: mmap, kernel: splice, metadata: mmap)
\-\-buffers-uid
Use per UID buffer (\-u only). Buffers are shared between applications
that have the same UID.
Use shared buffer for the whole system (\-k only)
\-C, \-\-tracefile-size SIZE
Maximum size of each tracefile within a stream (in bytes).
+ 0 means unlimited. (default: 0)
\-W, \-\-tracefile-count COUNT
Used in conjunction with \-C option, this will limit the number
- of files created to the specified count.
+ of files created to the specified count. 0 means unlimited. (default: 0)
.B EXAMPLES:
$ lttng enable-channel -C 4096 -W 32 chan1
-For each stream, the maximum size of a trace file will be 4096 bytes divided
-over a \fBmaximum\fP of 32 different files. The file count is appended after
+For each stream, the maximum size of each trace file will be 4096 bytes, and
+there will be a maximum of 32 different files. The file count is appended after
the stream number as seen in the following example. The last trace file is
smaller than 4096 since it was not completely filled.
.IP
+.IP "\fBsnapshot\fP ACTION"
+.nf
+Snapshot command for LTTng session.
+.fi
+
+.B OPTIONS:
+
+.nf
+\-h, \-\-help
+ Show summary of possible options and commands.
+\-\-list-options
+ Simple listing of options
+.fi
+
+.B ACTION:
+
+.nf
+\fBadd-output\fP [-m <SIZE>] [-s <NAME>] [-n <NAME>] <URL> | -C <URL> -D <URL>
+
+Setup and add an snapshot output for a session. Output are the destination
+where the snapshot will be sent. Only one output is permitted. To change it,
+you'll need to delete it and add back the new one.
+
+\fBdel-output\fP ID | NAME [-s <NAME>]
+
+Delete an output for a session using the ID. You can either specify the
+output's ID that can be found with list-output or the name.
+
+\fBlist-output\fP [-s <NAME>]
+
+List the output of a session. Attributes of the output are printed.
+
+\fBrecord\fP [-m <SIZE>] [-s <NAME>] [-n <NAME>] [<URL> | -C <URL> -D <URL>]
+
+Snapshot a session's buffer(s) for all domains. If an URL is specified, it is
+used instead of a previously added output. Specifying only a name or/and a max
+size will override the current output values. For instance, you can record a
+snapshot with a custom maximum size or with a different name.
+
+$ lttng add-output -n mysnapshot file:///data/snapshot
+[...]
+$ lttng snapshot record -n new_name_snapshot
+
+The above will create a snapshot in /data/snapshot/new_name_snapshot* directory
+rather then in mysnapshot*/
+.fi
+
+.B LONG OPTIONS
+
+.nf
+\-s, \-\-session NAME
+ Apply to session name.
+\-n, \-\-name NAME
+ Name of the snapshot's output.
+\-m, \-\-max-size SIZE
+ Maximum size in bytes of the snapshot. The maxium size does not
+ include the metadata file.
+\-C, \-\-ctrl-url URL
+ Set control path URL. (Must use -D also)
+\-D, \-\-data-url URL
+ Set data path URL. (Must use -C also)
+.fi
+
+.IP
+
.IP "\fBstart\fP [NAME] [OPTIONS]"
.nf
Start tracing