Update the remaining manual pages for LTTng-tools 2.13
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Thu, 29 Apr 2021 21:00:07 +0000 (17:00 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 7 May 2021 17:47:51 +0000 (13:47 -0400)
This patch updates the remaining manual pages for LTTng-tools 2.13.

This patch:

* Improves the consistency of some command descriptions in
  `configure.ac`.

* Adds `common-daemon-cfg.txt` which is a section explaining how to
  configure a daemon (session or relay).

  lttng-sessiond(8) and lttng-relayd(8) include this file.

* Adds `lttng-concepts.7.txt` which is an adapted copy of the
  "Core concepts" section of the online LTTng Documentation.

  This centralizes all the LTTng theory into a single manual page
  instead of having this information split into multiple lttng(1)
  command manual pages.

  Many manual pages now refer to lttng-concepts(7), making it possible
  to cut a lot of text in those.

* Updates existing manual pages to:

  * Have a style and voice which is more consistent with the LTTng
    Documentation (website) for 2.13.

  * Fix various terminology ambiguities.

  * Use more textual variables and lists to explain more complex logic
    and processes.

  * Always use the same pattern to specify the behaviour of an lttng(1)
    command depending on the `SESSION` argument or the `--session`
    option.

  * For the commands which can perform more than one task, list their
    available tasks at the beginning of the "DESCRIPTION" section.

  * For some lttng(1) commands which can operate on all tracing sessions
    (for example, lttng-clear(1) and lttng-destroy(1)), always indicate
    that they target all your Unix user's tracing sessions or, if your
    Unix user is `root`, the tracing sessions of all the Unix users
    within the root session daemon.

  * Clean the "SEE ALSO" sections.

  * Always have "LTTng" in the "NAME" section of a manual page.

  More specifically:

  lttng-create(1):
      * Clarify the tracing session modes.

      * Clarify how the command adds (or not) a snapshot output for a
        snapshot mode tracing session.

      * Specify that `--output=DIR` is equivalent to
        `--set-url=file://DIR`.

  lttng-enable-channel(1):
      Include the `--discard`, `--buffers-uid`, and `--buffers-global`
      options in the "SYNOPSIS" section even if they are the current
      defaults.

  lttng-list(1):
      Explain what this command does exactly using a tree of options
      and arguments.

  lttng-load(1):
      Clarify how LTTng finds tracing session configurations.

  lttng-relayd(8):
      * Document the missing `--group` option.

      * Rework the text in general.

      * Add a daemon configuration section with an INI file example.

      * Add more cross-references between options and equivalent
        environment variables.

  lttng-rotate(1):
      Specify that the `rotate-session` trigger action can also rotate
      a tracing session.

  lttng-save(1):
      Clarify the output path.

  lttng-sessiond(8):
      Add more cross-references between options and equivalent
      environment variables.

  lttng-shapshot(1):
      * Clarify everything related to the snapshot output of a tracing
        session, including when and how the lttng-create(1) command adds
        an initial snapshot output.

      * Specify that the `snapshot-session` trigger action can also take
        a snapshot of a tracing session.

  lttng-track(1):
  lttng-untrack(1):
      * Simply refer to allowing processes to record events and to
        process attribute inclusion sets instead of using the vague
        "tracker" terminology.

      * Restate that those commands control an implicit condition of
        a recording event rule, as per lttng-concepts(7).

      * Improve the documentation of each inclusion set selection
        option.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Iac7498ee979fe077f0927a9b8335f6c07f203989

38 files changed:
configure.ac
doc/man/Makefile.am
doc/man/common-cmd-footer.txt
doc/man/common-daemon-cfg.txt [new file with mode: 0644]
doc/man/lttng-add-context.1.txt
doc/man/lttng-add-trigger.1.txt
doc/man/lttng-clear.1.txt
doc/man/lttng-concepts.7.txt [new file with mode: 0644]
doc/man/lttng-crash.1.txt
doc/man/lttng-create.1.txt
doc/man/lttng-destroy.1.txt
doc/man/lttng-disable-channel.1.txt
doc/man/lttng-disable-event.1.txt
doc/man/lttng-disable-rotation.1.txt
doc/man/lttng-enable-channel.1.txt
doc/man/lttng-enable-event.1.txt
doc/man/lttng-enable-rotation.1.txt
doc/man/lttng-event-rule.7.txt
doc/man/lttng-help.1.txt
doc/man/lttng-list-triggers.1.txt
doc/man/lttng-list.1.txt
doc/man/lttng-load.1.txt
doc/man/lttng-metadata.1.txt
doc/man/lttng-regenerate.1.txt
doc/man/lttng-relayd.8.txt
doc/man/lttng-remove-trigger.1.txt
doc/man/lttng-rotate.1.txt
doc/man/lttng-save.1.txt
doc/man/lttng-sessiond.8.txt
doc/man/lttng-set-session.1.txt
doc/man/lttng-snapshot.1.txt
doc/man/lttng-start.1.txt
doc/man/lttng-status.1.txt
doc/man/lttng-stop.1.txt
doc/man/lttng-track.1.txt
doc/man/lttng-untrack.1.txt
doc/man/lttng-view.1.txt
doc/man/lttng.1.txt

index 137d956b8d76143cd151a43cceb588d69cb1d934..75240d836151109a2ab017811677844acd7ced9a 100644 (file)
@@ -433,12 +433,12 @@ _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_CREATE], [Create a tracing session])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DESTROY], [Destroy tracing sessions])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_CHANNEL], [Disable channels])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_EVENT], [Disable recording event rules])
-_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a rotation schedule])
+_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_DISABLE_ROTATION], [Unset a tracing session rotation schedule])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_CHANNEL], [Create or enable a channel])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_EVENT], [Create or enable recording event rules])
-_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a rotation schedule])
+_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_ENABLE_ROTATION], [Set a tracing session rotation schedule])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_HELP], [Show the help of a command])
-_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List tracing sessions, tracing domains, channels, and recording event rules])
+_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST], [List tracing sessions and instrumentation points])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LIST_TRIGGERS], [List triggers])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_LOAD], [Load tracing session configurations])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_REGENERATE], [Regenerate specific tracing session data])
@@ -450,8 +450,8 @@ _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_SNAPSHOT], [Take a tracing session snapsh
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_START], [Start a tracing session])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STATUS], [Show the status of the current tracing session])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_STOP], [Stop a tracing session])
-_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Track process attrbutes])
-_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Untrack process attributes])
+_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_TRACK], [Allow specific processes to record events])
+_AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_UNTRACK], [Disallow specific processes to record events])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VERSION], [Show LTTng-tools version information])
 _AC_DEFINE_QUOTED_AND_SUBST([CMD_DESCR_VIEW], [Launch a trace reader])
 
index 869494db9ad735942c671065e66c3e1095a5e32d..97aa59b665449036ab6be99d9f6c83b6b0a6ef24 100644 (file)
@@ -41,7 +41,7 @@ MAN1_NAMES = \
        lttng-remove-trigger \
        lttng-list-triggers
 MAN3_NAMES =
-MAN7_NAMES = lttng-event-rule
+MAN7_NAMES = lttng-event-rule lttng-concepts
 MAN8_NAMES = lttng-sessiond lttng-relayd
 MAN1_NO_ASCIIDOC_NAMES =
 MAN3_NO_ASCIIDOC_NAMES = lttng-health-check
@@ -63,7 +63,8 @@ COMMON_TXT = \
        $(srcdir)/common-cmd-options-head.txt \
        $(srcdir)/common-cmd-help-options.txt \
        $(srcdir)/common-help-option.txt \
-       $(srcdir)/common-intro.txt
+       $(srcdir)/common-intro.txt \
+       $(srcdir)/common-daemon-cfg.txt
 
 # config
 ASCIIDOC_CONF = $(srcdir)/asciidoc.conf
index dbeab32d615ed85209d1ea879f768c955c34a15a..cd0ce8b762ca1d83e0a53cf5b5c0dc56b017c70e 100644 (file)
@@ -22,8 +22,8 @@ directory.
     configuration XML schema.
 
 `LTTNG_SESSIOND_PATH`::
-    Absolute path to the LTTng session daemon (see
-    man:lttng-sessiond(8)) binary.
+    Absolute path to the LTTng session daemon binary (see
+    man:lttng-sessiond(8)).
 +
 The genoption:--sessiond-path general option overrides this environment
 variable.
diff --git a/doc/man/common-daemon-cfg.txt b/doc/man/common-daemon-cfg.txt
new file mode 100644 (file)
index 0000000..c7b7eed
--- /dev/null
@@ -0,0 +1,39 @@
+[[cfg]]
+Daemon configuration
+~~~~~~~~~~~~~~~~~~~~
+When you run +{daemon-bin-name}+, it configures itself from, in this order:
+
+. The INI configuration file +{system_lttng_conf}+, if any.
+
+. The INI configuration file `$LTTNG_HOME/.lttng/lttng.conf`, if any.
++
+`$LTTNG_HOME` defaults to `$HOME`.
+
+. With the option:--config='PATH' option: the INI configuration file
+  'PATH'.
+
+. The command-line options.
+
+Each step can override a previous configuration property.
+
+In INI configuration files, the session daemon only reads the properties
+under the +{daemon-ini-section}+ INI section. Each INI property is:
+
+Key::
+    The long name of a command-line option to set (see the
+    <<options,OPTIONS>> section below).
+
+Value::
+    The selected command-line option accepts an argument:::
+        Option argument (string).
+
+    The selected command-line option is a switch:::
+        `true`::::
+        `yes`::::
+        `on`::::
+            Enable the option.
+
+        `false`::::
+        `no`::::
+        `off`::::
+            Disable the option.
index 512bdf154963472dff910c3dfa91ac78bf22108c..a5ca19ef551a93376479dddabf1c496a8c0ab694 100644 (file)
@@ -1,6 +1,6 @@
 lttng-add-context(1)
 ====================
-:revdate: 8 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -10,8 +10,8 @@ lttng-add-context - Add context fields to be recorded by LTTng
 
 SYNOPSIS
 --------
-Add context fields to be recorded to the LTTng event records of
-one or more channels:
+Add context fields to be recorded to the event records of one or more
+channels:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *add-context*
@@ -27,77 +27,84 @@ List the available context field types:
 
 DESCRIPTION
 -----------
-The `lttng add-context` command adds one or more context fields to be
-recorded to the event records of a given channel, or of all the channels
-of a selected tracing session, by LTTng.
+The `lttng add-context` command can:
 
-See man:lttng-enable-channel(1) to learn more about LTTng channels.
+Without the option:--list option::
+    Add one or more context fields to be recorded by LTTng to the event
+    records of a given channel, or of all the channels of:
++
+With the option:--session='SESSION' option:::
+    The tracing session named 'SESSION'.
+
+Without the option:--session option:::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-When you use the `add-context` command to add context fields for a given
-channel, all the event records which LTTng writes to a sub-buffer of
-that channel contain the dynamic values of those context fields.
+With the option:--list option::
+    List the available context field types.
 
-Without the option:--session option, the `add-context` command selects
-the current tracing session (see man:lttng-create(1) and
-man:lttng-set-session(1) to learn more about the current tracing
-session).
+See man:lttng-concepts(7) to learn more about tracing sessions and
+channels.
 
 Without the option:--channel option, LTTng adds context fields to be
 recorded to the event records of *all* the channels of the selected
 tracing session.
 
-Repeat the option:--type option to add more than one context field to be
-recorded.
+Repeat the option:--type='TYPE' option to add more than one context
+field to be recorded. 'TYPE' is one of:
 
-perf counter context fields are available:
+* A statically-known, or built-in context field named.
 
+* A perf counter name:
++
+--
 Per-CPU::
-    Prefix: `perf:cpu:`.
+    Prefix: `perf:cpu:`
 +
-Only available for Linux kernel (option:--kernel option) channels.
+Only available with the option:--kernel option.
 
 Per-thread::
-    Prefix: `perf:thread:`.
+    Prefix: `perf:thread:`
 +
-Only available for user application/library (option:--userspace,
-option:--jul, and option:--log4j options) channels.
-
-Add PMU counter context fields by raw ID with the
-++perf:cpu:raw:r++__N__++:++__NAME__ (Linux kernel tracing domain) or
-++perf:thread:raw:r++__N__++:++__NAME__ (user space tracing domain)
-types, with:
-
+Only available with the option:--userspace, option:--jul, or
+option:--log4j option.
+--
++
+Add Performance Monitoring Unit (PMU) counter context fields by raw ID
+with the ++perf:cpu:raw:r++__N__++:++__NAME__ (option:--kernel option)
+or ++perf:thread:raw:r++__N__++:++__NAME__ (option:--userspace,
+option:--jul, or option:--log4j option) types, with:
++
+--
 'N'::
     A hexadecimal event descriptor which follows the man:perf-record(1)
     format: a concatenation of the event number and umask value which
     the manufacturer of the processor provides.
 +
-The possible values for this field are processor-specific.
+The possible values for this part are processor-specific.
 
 'NAME'::
-    Custom name to easily recognize the counter.
-
-Add an application-specific context field with the following syntax:
+    Custom name to identify the counter.
+--
 
+* An LTTng application-specific context field name:
++
 [verse]
 $app.'PROVIDER':__TYPE__
-
++
 'PROVIDER'::
     Provider name.
 
 'TYPE'::
     Context type name.
 
-NOTE: Make sure to **single-quote** the argument of the option:--type
-option when you run the `add-context` command from a shell, as `$` is a
-special character for variable substitution in most shells.
-
-List the available context field types with the option:--list option and
-without other arguments.
+IMPORTANT: Make sure to **single-quote** 'TYPE' when you run the
+`add-context` command from a shell, as `$` is a special character for
+variable substitution in most shells.
 
-NOTE: As of LTTng{nbsp}{lttng_version}, you may :not: add context
-fields to be recorded to the event records of a given channel once its
-tracing session has been started (see man:lttng-start(1)) at least once.
+NOTE: As of LTTng{nbsp}{lttng_version}, you may :not: add context fields
+to be recorded to the event records of a given channel once its tracing
+session has been started (see man:lttng-start(1)) at least once.
 
 
 include::common-cmd-options-head.txt[]
@@ -160,5 +167,5 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
-man:lttng-enable-channel(1),
-man:lttng-set-session(1)
+man:lttng-concepts(7),
+man:lttng-enable-channel(1)
index ccca9da0f8b4353e19dc9d1cd2157505e9556e0e..5694d28d695dd03dcb8351f5b1ffc50c38f6687c 100644 (file)
@@ -1,6 +1,6 @@
 lttng-add-trigger(1)
 ====================
-:revdate: 23 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -18,33 +18,27 @@ SYNOPSIS
 DESCRIPTION
 -----------
 The `lttng add-trigger` command creates and adds an LTTng _trigger_ to
-the session daemon (see man:lttng-sessiond(8)).
+the connected session daemon (see man:lttng-sessiond(8)).
 
-A trigger is an association between a _condition_ and one or more
-_actions_. When the condition of a trigger{nbsp}__T__ is satisfied,
-LTTng requests to execute the actions of{nbsp}__T__. Depending on the
-rate policy of an action, an execution request can become an actual
-execution.
+See man:lttng-concepts(7) to learn more about LTTng triggers.
 
-A trigger doesn't belong to a specific tracing session: it's global to
-the session daemon. Within the session daemon, and for a given Unix
-user, a trigger has a unique name. By default, the `add-trigger` command
-automatically assigns a name to the added trigger. Use the option:--name
-option to assign a specific name instead.
+By default, the `add-trigger` command automatically assigns a name,
+unique for a given session daemon and Unix user, to the added trigger.
+Assign a custom name with the option:--name.
 
 The `add-trigger` command adds a trigger for your Unix user. If your
-Unix user is `root`, you can add the trigger as another user with the
+Unix user is `root`, you may add the trigger as another user with the
 option:--owner-uid option.
 
 Specify the condition of the trigger to add with a <<cond-spec,condition
 specifier>> and its actions with one or more <<action-spec,action
 specifiers>>. The order of the action specifiers is significant: LTTng
-attempts to execute the actions of a trigger in order.
+attempts to execute the actions of a firing trigger in this order.
 
-List the available triggers for your Unix user (or for all users if your
-Unix user is `root`) with the man:lttng-list-triggers(1) command.
+List the triggers of your Unix user, or of all users if your
+Unix user is `root`, with the man:lttng-list-triggers(1) command.
 
-Remove an existing trigger with the man:lttng-remove-trigger(1) command.
+Remove a trigger with the man:lttng-remove-trigger(1) command.
 
 
 [[cond-spec]]
@@ -65,7 +59,7 @@ The available condition types are:
     Synopsis:
 +
 [verse]
-option:--condition=event-rule-matches [nloption:--capture='CDESCR']... 'ERSPEC'
+option:--condition=**event-rule-matches** [nloption:--capture='CDESCR']... 'ERSPEC'
 {nbsp}
 +
 An `event-rule-matches` condition is considered satisfied when the event
@@ -168,7 +162,7 @@ Notify::
     Synopsis:
 +
 [verse]
-option:--action=notify [nloption:--rate-policy='POLICY']
+option:--action=**notify** [nloption:--rate-policy='POLICY']
 {nbsp}
 +
 Sends a notification through the notification
@@ -186,7 +180,7 @@ Start a tracing session::
     Synopsis:
 +
 [verse]
-option:--action=start-session 'SESSION' [nloption:--rate-policy='POLICY']
+option:--action=**start-session** 'SESSION' [nloption:--rate-policy='POLICY']
 {nbsp}
 +
 Starts the tracing session named 'SESSION' like man:lttng-start(1)
@@ -201,7 +195,7 @@ Stop a tracing session::
     Synopsis:
 +
 [verse]
-option:--action=stop-session 'SESSION' [nloption:--rate-policy='POLICY']
+option:--action=**stop-session** 'SESSION' [nloption:--rate-policy='POLICY']
 {nbsp}
 +
 Stops the tracing session named 'SESSION' like man:lttng-stop(1) would.
@@ -215,7 +209,7 @@ Rotate a tracing session::
     Synopsis:
 +
 [verse]
-option:--action=rotate-session 'SESSION' [nloption:--rate-policy='POLICY']
+option:--action=**rotate-session** 'SESSION' [nloption:--rate-policy='POLICY']
 {nbsp}
 +
 Archives the current trace chunk of the tracing session named 'SESSION'
@@ -230,7 +224,7 @@ Take a tracing session snapshot::
     Synopsis:
 +
 [verse]
-option:--action=snapshot-session 'SESSION' [nloption:--rate-policy='POLICY']
+option:--action=**snapshot-session** 'SESSION' [nloption:--rate-policy='POLICY']
 {nbsp}
 +
 Takes a snapshot of the tracing session named 'SESSION' like
@@ -315,5 +309,6 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-list-triggers(1),
 man:lttng-remove-trigger(1)
index 7cec7f44e13282b747e75f1cd3bf2dd90a3b3d87..34714f699fac5c39437eca761973ba895fc739d0 100644 (file)
@@ -1,10 +1,10 @@
 lttng-clear(1)
 ==============
-:revdate: 8 April 2021
+:revdate: 3 May 2021
 
 NAME
 ----
-lttng-clear - Clear a tracing session
+lttng-clear - Clear an LTTng tracing session
 
 
 SYNOPSIS
@@ -19,27 +19,33 @@ The `lttng clear` command clears one or more tracing sessions, that is,
 it deletes the contents of their tracing buffers and of all their local
 and streamed trace data.
 
+See man:lttng-concepts(7) to learn more about tracing sessions.
+
 The `clear` command clears:
 
 Without any option::
     The current tracing session.
 +
-See man:lttng-create(1) and man:lttng-set-session(1) to learn more about
-the current tracing session.
+See man:lttng-concepts(7) to learn more about the current tracing
+session.
 
 With the 'SESSION' argument::
-    The existing tracing session named 'SESSION'.
+    The tracing session named 'SESSION'.
 
 With the option:--all option::
-    *All* the tracing sessions of your Unix user, as listed in the
-    output of `lttng list` (see man:lttng-list(1)).
+    *All* the tracing sessions of the connected session daemon for your
+    Unix user, or for all users if your Unix user is `root`, as listed
+    in the output of `lttng list` (see man:lttng-list(1)).
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
 
 If a tracing session is configured in snapshot mode (see the
 nloption:--snapshot option of the man:lttng-create(1) command), the
 `clear` command only clears the tracing buffers.
 
 For a given tracing session, if at least one rotation occurred (see
-man:lttng-rotate(1)), the `clear` command only clears its tracing
+man:lttng-concepts(7)), the `clear` command only clears its tracing
 buffers and its current trace chunk, :not: its archived trace chunks.
 
 NOTE: The nloption:--disallow-clear option and the
@@ -55,9 +61,10 @@ include::common-cmd-options-head.txt[]
 Recording target
 ~~~~~~~~~~~~~~~~
 option:-a, option:--all::
-    Clear all the tracing sessions of your Unix user, as listed in the
-    output of man:lttng-list(1), instead of the current tracing session
-    or the tracing session named 'SESSION'.
+    Clear all the tracing sessions of your Unix user, or of all users if
+    your Unix user is `root`, as listed in the output of
+    man:lttng-list(1), instead of the current tracing session or the
+    tracing session named 'SESSION'.
 
 
 include::common-cmd-help-options.txt[]
@@ -69,7 +76,6 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
-man:lttng-relayd(8),
-man:lttng-rotate(1),
-man:lttng-set-session(1)
+man:lttng-relayd(8)
diff --git a/doc/man/lttng-concepts.7.txt b/doc/man/lttng-concepts.7.txt
new file mode 100644 (file)
index 0000000..e88f529
--- /dev/null
@@ -0,0 +1,999 @@
+lttng-concepts(7)
+=================
+:revdate: 3 May 2021
+:sect-event-rule: INSTRUMENTATION POINT, EVENT RULE, AND EVENT
+:sect-session: TRACING SESSION
+:sect-domain: TRACING DOMAIN
+:sect-channel: CHANNEL AND RING BUFFER
+:sect-recording-event-rule: RECORDING EVENT RULE AND EVENT RECORD
+
+
+NAME
+----
+lttng-concepts - LTTng concepts
+
+
+DESCRIPTION
+-----------
+This manual page documents the concepts of LTTng.
+
+Many other LTTng manual pages refer to this one so that you can
+understand what are the various LTTng objects and how they relate to
+each other.
+
+The concepts of LTTng{nbsp}{lttng_version} are:
+
+* Instrumentation point, event rule, and event
+* Trigger
+* Tracing session
+* Tracing domain
+* Channel and ring buffer
+* Recording event rule and event record
+
+
+[[event-rule]]
+{sect-event-rule}
+-----------------
+An _instrumentation point_ is a point, within a piece of software,
+which, when executed, creates an LTTng _event_.
+
+LTTng offers various types of instrumentation; see the
+<<inst-point-types,Instrumentation point types>> section below to learn
+about them.
+
+An _event rule_ is a set of conditions to match a set of events.
+
+When LTTng creates an event{nbsp}__E__, an event rule{nbsp}__ER__ is
+said to __match__{nbsp}__E__ when{nbsp}__E__ satisfies *all* the
+conditions of{nbsp}__ER__. This concept is similar to a regular
+expression which matches a set of strings.
+
+When an event rule matches an event, LTTng _emits_ the event, therefore
+attempting to execute one or more actions.
+
+[IMPORTANT]
+====
+The event creation and emission processes are documentation concepts to
+help understand the journey from an instrumentation point to the
+execution of actions.
+
+The actual creation of an event can be costly because LTTng needs to
+evalute the arguments of the instrumentation point.
+
+In practice, LTTng implements various optimizations for the Linux kernel
+and user space tracing domains (see the <<domain,{sect-domain}>> section
+below) to avoid actually creating an event
+when the tracer knows, thanks to properties which are independent from
+the event payload and current context, that it would never emit such an
+event. Those properties are:
+
+* The instrumentation point type (see the
+  <<inst-point-types,Instrumentation point types>> section below).
+
+* The instrumentation point name.
+
+* The instrumentation point log level.
+
+* For a recording event rule (see the
+  <<recording-event-rule,{sect-recording-event-rule}>> section
+  below):
+** The status of the rule itself.
+** The status of the channel (see the <<channel,{sect-channel}>> section
+   below).
+** The activity of the tracing session (started or stopped; see
+   the <<session,{sect-session}>> section below).
+** Whether or not the process for which LTTng would create the event is
+   allowed to record events (see man:lttng-track(1)).
+
+In other words: if, for a given instrumentation point{nbsp}__IP__, the
+LTTng tracer knows that it would never emit an event,
+executing{nbsp}__IP__ represents a simple boolean variable check and,
+for a Linux kernel recording event rule, a few process attribute checks.
+====
+
+As of LTTng{nbsp}{lttng_version}, there are two places where you can
+find an event rule:
+
+Recording event rule::
+    A specific type of event rule of which the action is to record the
+    matched event as an event record.
++
+See the <<recording-event-rule,{sect-recording-event-rule}>> section
+below.
++
+Create or enable a recording event rule with the
+man:lttng-enable-event(1) command.
++
+List the recording event rules of a specific tracing session
+and/or channel with the man:lttng-list(1) and man:lttng-status(1)
+commands.
+
+``Event rule matches'' <<trigger,trigger>> condition (since LTTng{nbsp}2.13)::
+    When the event rule of the trigger condition matches an event, LTTng
+    can execute user-defined actions such as sending an LTTng
+    notification, starting a tracing session, and more.
++
+See man:lttng-add-trigger(1) and man:lttng-event-rule(7).
+
+For LTTng to emit an event{nbsp}__E__,{nbsp}__E__ must satisfy *all* the
+basic conditions of an event rule{nbsp}__ER__, that is:
+
+* The instrumentation point from which LTTng creates{nbsp}__E__ has a
+  specific type.
++
+See the <<inst-point-types,Instrumentation point types>> section below.
+
+* A pattern matches the name of{nbsp}__E__ while another pattern
+  doesn't.
+
+* The log level of the instrumentation point from which LTTng
+  creates{nbsp}__E__ is at least as severe as some value, or is exactly
+  some value.
+
+* The fields of the payload of{nbsp}__E__ and the current context fields
+  satisfy a filter expression.
+
+A recording event rule has additional, implicit conditions to satisfy.
+See the <<recording-event-rule,{sect-recording-event-rule}>> section
+below to learn more.
+
+
+[[inst-point-types]]
+Instrumentation point types
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+As of LTTng{nbsp}{lttng_version}, the available instrumentation point
+types are, depending on the tracing domain (see the
+<<domain,{sect-domain}>> section below):
+
+Linux kernel::
+    LTTng tracepoint:::
+        A statically defined point in the source code of the kernel
+        image or of a kernel module using the LTTng-modules macros.
++
+List the available Linux kernel tracepoints with `lttng list --kernel`.
+See man:lttng-list(1) to learn more.
+
+    Linux kernel system call:::
+        Entry, exit, or both of a Linux kernel system call.
++
+List the available Linux kernel system call instrumentation points with
+`lttng list --kernel --syscall`. See man:lttng-list(1) to learn more.
+
+    Linux kprobe:::
+        A single probe dynamically placed in the compiled kernel code.
++
+When you create such an instrumentation point, you set its memory
+address or symbol name.
+
+    Linux user space probe:::
+        A single probe dynamically placed at the entry of a compiled
+        user space application/library function through the kernel.
++
+When you create such an instrumentation point, you set:
++
+--
+With the ELF method::
+    Its application/library path and its symbol name.
+
+With the USDT method::
+    Its application/library path, its provider name, and its probe name.
++
+``USDT'' stands for SystemTap User-level Statically Defined Tracing,
+a DTrace-style marker.
+--
++
+As of LTTng{nbsp}{lttng_version}, LTTng only supports USDT probes which
+are :not: reference-counted.
+
+    Linux kretprobe:::
+        Entry, exit, or both of a Linux kernel function.
++
+When you create such an instrumentation point, you set the memory
+address or symbol name of its function.
+
+User space::
+    LTTng tracepoint:::
+        A statically defined point in the source code of a C/$$C++$$
+        application/library using the LTTng-UST macros.
++
+List the available Linux kernel tracepoints with
+`lttng list --userspace`. See man:lttng-list(1) to learn more.
+
+`java.util.logging`, Apache log4j, and Python::
+    Java or Python logging statement:::
+        A method call on a Java or Python logger attached to an
+        LTTng-UST handler.
++
+List the available Java and Python loggers with `lttng list --jul`,
+`lttng list --log4j`, and `lttng list --python`. See man:lttng-list(1)
+to learn more.
+
+
+[[trigger]]
+TRIGGER
+-------
+A _trigger_ associates a condition to one or more actions.
+
+When the condition of a trigger is satisfied, LTTng attempts to execute
+its actions.
+
+As of LTTng{nbsp}{lttng_version}, the available trigger conditions and
+actions are:
+
+Conditions::
++
+* The consumed buffer size of a given tracing
+  session (see the <<session,{sect-session}>> section below)
+  becomes greater than some value.
+
+* The buffer usage of a given channel (see the
+  <<channel,{sect-channel}>> section below) becomes greater than some
+  value.
+
+* The buffer usage of a given channel becomes less than some value.
+
+* There's an ongoing tracing session rotation (see the
+  <<rotation,Tracing session rotation>> section below).
+
+* A tracing session rotation becomes completed.
+
+* An event rule matches an event.
++
+As of LTTng{nbsp}{lttng_version}, this is the only available condition
+when you add a trigger with the man:lttng-add-trigger(1) command. The
+other ones are available through the liblttng-ctl C{nbsp}API.
+
+Actions::
++
+* Send a notification to a user application.
+* Start a given tracing session, like man:lttng-start(1) would do.
+* Stop a given tracing session, like man:lttng-stop(1) would do.
+* Archive the current trace chunk of a given tracing session (rotate),
+  like man:lttng-rotate(1) would do.
+* Take a snapshot of a given tracing session, like man:lttng-snapshot(1)
+  would do.
+
+A trigger belongs to a session daemon (see man:lttng-sessiond(8)), not
+to a specific tracing session. For a given session daemon, each Unix
+user has its own, private triggers. Note, however, that the `root` Unix
+user may, for the root session daemon:
+
+* Add a trigger as another Unix user.
+
+* List all the triggers, regardless of their owner.
+
+* Remove a trigger which belongs to another Unix user.
+
+For a given session daemon and Unix user, a trigger has a unique name.
+
+Add a trigger to a session daemon with the man:lttng-add-trigger(1)
+command.
+
+List the triggers of your Unix user (or of all users if your
+Unix user is `root`) with the man:lttng-list-triggers(1) command.
+
+Remove a trigger with the man:lttng-remove-trigger(1) command.
+
+
+[[session]]
+{sect-session}
+--------------
+A _tracing session_ is a stateful dialogue between you and a session
+daemon (see man:lttng-sessiond(8)) for everything related to event
+recording.
+
+Everything that you do when you control LTTng tracers to record events
+happens within a tracing session. In particular, a tracing session:
+
+* Has its own name, unique for a given session daemon.
+
+* Has its own set of trace files, if any.
+
+* Has its own state of activity (started or stopped).
++
+An active tracing session is an implicit recording event rule condition
+(see the <<recording-event-rule,{sect-recording-event-rule}>> section
+below).
+
+* Has its own mode (local, network streaming, snapshot, or live).
++
+See the <<session-modes,Tracing session modes>> section below to learn
+more.
+
+* Has its own channels (see the <<channel,{sect-channel}>> section
+  below) to which are attached their own recording event rules.
+
+* Has its own process attribute inclusion sets (see man:lttng-track(1)).
+
+Those attributes and objects are completely isolated between different
+tracing sessions.
+
+A tracing session is like an ATM session: the operations you do on the
+banking system through the ATM don't alter the data of other users of
+the same system. In the case of the ATM, a session lasts as long as your
+bank card is inside. In the case of LTTng, a tracing session lasts from
+the man:lttng-create(1) command to the man:lttng-destroy(1) command.
+
+A tracing session belongs to a session daemon (see
+man:lttng-sessiond(8)). For a given session daemon, each Unix user has
+its own, private tracing sessions. Note, however, that the `root` Unix
+user may operate on or destroy another user's tracing session.
+
+Create a tracing session with the man:lttng-create(1) command.
+
+List the tracing sessions of the connected session daemon with
+the man:lttng-list(1) command.
+
+Start and stop a tracing session with the man:lttng-start(1) and
+man:lttng-stop(1) commands.
+
+Save and load a tracing session with the man:lttng-save(1) and
+man:lttng-load(1) commands.
+
+Archive the current trace chunk of (rotate) a tracing session with the
+man:lttng-rotate(1) command.
+
+Destroy a tracing session with the man:lttng-destroy(1) command.
+
+
+Current tracing session
+~~~~~~~~~~~~~~~~~~~~~~~
+When you run the man:lttng-create(1) command, LTTng creates the
+`$LTTNG_HOME/.lttngrc` file if it doesn't exist (`$LTTNG_HOME` defaults
+to `$HOME`).
+
+`$LTTNG_HOME/.lttngrc` contains the name of the _current tracing
+session_.
+
+When you create a new tracing session with the `create` command, LTTng
+updates the current tracing session.
+
+The following man:lttng(1) commands select the current tracing session
+if you don't specify one:
+
+* man:lttng-add-context(1)
+* man:lttng-clear(1)
+* man:lttng-destroy(1)
+* man:lttng-disable-channel(1)
+* man:lttng-disable-event(1)
+* man:lttng-disable-rotation(1)
+* man:lttng-enable-channel(1)
+* man:lttng-enable-event(1)
+* man:lttng-enable-rotation(1)
+* man:lttng-regenerate(1)
+* man:lttng-rotate(1)
+* man:lttng-save(1)
+* man:lttng-snapshot(1)
+* man:lttng-start(1)
+* man:lttng-status(1)
+* man:lttng-stop(1)
+* man:lttng-track(1)
+* man:lttng-untrack(1)
+* man:lttng-view(1)
+
+Set the current tracing session manually with the
+man:lttng-set-session(1) command, without having to edit the `.lttngrc`
+file.
+
+
+[[session-modes]]
+Tracing session modes
+~~~~~~~~~~~~~~~~~~~~~
+LTTng offers four tracing session modes:
+
+Local mode::
+    Write the trace data to the local file system.
+
+Network streaming mode::
+    Send the trace data over the network to a listening relay daemon
+    (see man:lttng-relayd(8)).
+
+Snapshot mode::
+    Only write the trace data to the local file system or send it to a
+    listening relay daemon (man:lttng-relayd(8)) when LTTng takes a
+    snapshot.
++
+LTTng forces all the channels (see the <<channel,{sect-channel}>>
+section below) to be created to be configured to be snapshot-ready.
++
+LTTng takes a snapshot of such a tracing session when:
++
+--
+* You run the man:lttng-snapshot(1) command.
+
+* LTTng executes a `snapshot-session` trigger action (see the
+  <<trigger,TRIGGER>> section above).
+--
+
+Live mode::
+    Send the trace data over the network to a listening relay daemon
+    (see man:lttng-relayd(8)) for live reading.
++
+An LTTng live reader (for example, man:babeltrace2(1)) can connect to
+the same relay daemon to receive trace data while the tracing session is
+active.
+
+
+[[rotation]]
+Tracing session rotation
+~~~~~~~~~~~~~~~~~~~~~~~~
+A _tracing session rotation_ is the action of archiving the current
+trace chunk of the tracing session to the file system.
+
+Once LTTng archives a trace chunk, it does :not: manage it anymore: you
+can read it, modify it, move it, or remove it.
+
+An _archived trace chunk_ is a collection of metadata and data stream
+files which form a self-contained LTTng trace. See the
+<<trace-chunk-naming,Trace chunk naming>> section below to learn how
+LTTng names a trace chunk archive directory.
+
+The _current trace chunk_ of a given tracing session includes:
+
+* The stream files which LTTng already wrote to the file system, and
+  which are not part of a previously archived trace chunk, since the
+  most recent event amongst:
+
+** The first time the tracing session was started, either with the
+   man:lttng-start(1) command or with a `start-session` trigger action
+   (see the <<trigger,TRIGGER>> section above).
+
+** The last rotation, performed with:
+
+*** An man:lttng-rotate(1) command.
+
+*** A rotation schedule previously set with
+    man:lttng-enable-rotation(1).
+
+*** An executed `rotate-session` trigger action (see the
+    <<trigger,TRIGGER>> section above).
+
+* The content of all the non-flushed sub-buffers of the channels of the
+  tracing session.
+
+
+[[trace-chunk-naming]]
+Trace chunk archive naming
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+A trace chunk archive is a subdirectory of the `archives` subdirectory
+within the output directory of a tracing session (see the
+nloption:--output option of the man:lttng-create(1) command and
+of man:lttng-relayd(8)).
+
+A trace chunk archive contains, through tracing domain and possibly
+UID/PID subdirectories, metadata and data stream files.
+
+A trace chunk archive is, at the same time:
+
+* A self-contained LTTng trace.
+
+* A member of a set of trace chunk archives which form the complete
+  trace of a tracing session.
+
+In other words, an LTTng trace reader can read both the tracing
+session output directory (all the trace chunk archives), or a
+single trace chunk archive.
+
+When LTTng performs a tracing session rotation, it names the resulting
+trace chunk archive as such, relative to the output directory of the
+tracing session:
+
+[verse]
+archives/__BEGIN__-__END__-__ID__
+
+__BEGIN__::
+    Date and time of the beginning of the trace chunk archive with
+    the ISO{nbsp}8601-compatible __YYYYmmddTHHMMSS±HHMM__ form, where
+    __YYYYmmdd__ is the date and __HHMMSS±HHMM__ is the time with the
+    time zone offset from UTC.
++
+Example: `20171119T152407-0500`
+
+__END__::
+    Date and time of the end of the trace chunk archive with
+    the ISO{nbsp}8601-compatible __YYYYmmddTHHMMSS±HHMM__ form, where
+    __YYYYmmdd__ is the date and __HHMMSS±HHMM__ is the time with the
+    time zone offset from UTC.
++
+Example: `20180118T152407+0930`
+
+__ID__::
+    Unique numeric identifier of the trace chunk within its tracing
+    session.
+
+Trace chunk archive name example:
+
+----
+archives/20171119T152407-0500-20171119T151422-0500-3
+----
+
+
+[[domain]]
+{sect-domain}
+-------------
+A _tracing domain_ identifies a type of LTTng tracer.
+
+A tracing domain has its own properties and features.
+
+There are currently five available tracing domains:
+
+[options="header"]
+|===
+|Tracing domain |``Event rule matches'' trigger condition option |Option for other CLI commands
+
+|Linux kernel
+|nloption:--domain=++kernel++
+|nloption:--kernel
+
+|User space
+|nloption:--domain=++user++
+|nloption:--userspace
+
+|`java.util.logging` (JUL)
+|nloption:--domain=++jul++
+|nloption:--jul
+
+|Apache log4j
+|nloption:--domain=++log4j++
+|nloption:--log4j
+
+|Python
+|nloption:--domain=++python++
+|nloption:--python
+|===
+
+You must specify a tracing domain to target a type of LTTng tracer when
+using some man:lttng(1) to avoid ambiguity. For example, because the
+Linux kernel and user space tracing domains support named tracepoints as
+instrumentation points (see the <<"event-rule","{sect-event-rule}">> section
+above), you need to specify a tracing domain when you create an event
+rule because both tracing domains could have tracepoints sharing the
+same name.
+
+You can create channels (see the <<channel,{sect-channel}>> section
+below) in the Linux kernel and user space tracing domains. The other
+tracing domains have a single, default channel.
+
+
+[[channel]]
+{sect-channel}
+--------------
+A _channel_ is an object which is responsible for a set of ring buffers.
+
+Each ring buffer is divided into multiple _sub-buffers_. When a
+recording event rule (see the
+<<recording-event-rule,{sect-recording-event-rule} section below)
+matches an event, LTTng can record it to one or more sub-buffers of one
+or more channels.
+
+When you create a channel with the man:lttng-enable-channel(1) command,
+you set its final attributes, that is:
+
+* Its buffering scheme.
++
+See the <<channel-buf-scheme,Buffering scheme>> section below.
+
+* What to do when there's no
+  space left for a new event record because all sub-buffers are full.
++
+See the <<channel-er-loss-mode,Event record loss mode>> section below.
+
+* The size of each ring buffer and how many sub-buffers a ring buffer
+  has.
++
+See the <<channel-sub-buf-size-count,Sub-buffer size and count>> section
+below.
+
+* The size of each trace file LTTng writes for this channel and the
+  maximum count of trace files.
++
+See the <<channel-max-trace-file-size-count,Maximum trace file size and
+count>> section below.
+
+* The periods of its read, switch, and monitor timers.
++
+See the <<channel-timers,Timers>> section below.
+
+* For a Linux kernel channel: its output type (man:mmap(2) or
+  man:splice(2)).
++
+See the nloption:--output option of the man:lttng-enable-channel(1)
+command.
+
+* For a user space channel: the value of its blocking timeout.
++
+See the nloption:--blocking-timeout option of the
+man:lttng-enable-channel(1) command.
+
+Note that the man:lttng-enable-event(1) command can automatically create
+a default channel with sane defaults when no channel exists for the
+provided tracing domain.
+
+A channel is always associated to a tracing domain (see the
+<<domain,{sect-domain}>> section below). The `java.util.logging` (JUL),
+log4j, and Python tracing domains each have a default channel which you
+can't configure.
+
+A channel owns recording event rules.
+
+List the channels of a given tracing session with the
+man:lttng-list(1) and man:lttng-status(1) commands.
+
+Disable an enabled channel with the man:lttng-disable-channel(1)
+command.
+
+
+[[channel-buf-scheme]]
+Buffering scheme
+~~~~~~~~~~~~~~~~
+A channel has at least one ring buffer per CPU. LTTng always records an
+event to the ring buffer dedicated to the CPU which emits it.
+
+The buffering scheme of a user space channel determines what has its own
+set of per-CPU ring buffers:
+
+Per-user buffering (nloption:--buffers-uid option of the man:lttng-enable-channel(1) command)::
+    Allocate one set of ring buffers (one per CPU) shared by all the
+    instrumented processes of:
+        If your Unix user is `root`:::
+            Each Unix user.
+        Otherwise:::
+            Your Unix user.
+
+Per-process buffering (nloption:--buffers-pid option of the man:lttng-enable-channel(1) command)::
+    Allocate one set of ring buffers (one per CPU) for each instrumented
+    process of:
+        If your Unix user is `root`:::
+            All Unix users.
+        Otherwise:::
+            Your Unix user.
+
+The per-process buffering scheme tends to consume more memory than the
+per-user option because systems generally have more instrumented
+processes than Unix users running instrumented processes. However, the
+per-process buffering scheme ensures that one process having a high
+event throughput won't fill all the shared sub-buffers of the same Unix
+user, only its own.
+
+The buffering scheme of a Linux kernel channel is always to allocate a
+single set of ring buffers for the whole system. This scheme is similar
+to the per-user option, but with a single, global user ``running'' the
+kernel.
+
+
+[[channel-er-loss-mode]]
+Event record loss mode
+~~~~~~~~~~~~~~~~~~~~~~
+When LTTng emits an event, LTTng can record it to a specific, available
+sub-buffer within the ring buffers of specific channels. When there's no
+space left in a sub-buffer, the tracer marks it as consumable and
+another, available sub-buffer starts receiving the following event
+records. An LTTng consumer daemon eventually consumes the marked
+sub-buffer, which returns to the available state.
+
+In an ideal world, sub-buffers are consumed faster than they are filled.
+In the real world, however, all sub-buffers can be full at some point,
+leaving no space to record the following events.
+
+By default, LTTng-modules and LTTng-UST are _non-blocking_ tracers: when
+there's no available sub-buffer to record an event, it's acceptable to
+lose event records when the alternative would be to cause substantial
+delays in the execution of the instrumented application. LTTng
+privileges performance over integrity; it aims at perturbing the
+instrumented application as little as possible in order to make the
+detection of subtle race conditions and rare interrupt cascades
+possible.
+
+Since LTTng{nbsp}2.10, the LTTng user space tracer, LTTng-UST, supports
+a _blocking mode_. See the nloption:--blocking-timeout of the
+man:lttng-enable-channel(1) command to learn how to use the blocking
+mode.
+
+When it comes to losing event records because there's no available
+sub-buffer, or because the blocking timeout of the channel is
+reached, the _event record loss mode_ of the channel determines what to
+do. The available event record loss modes are:
+
+Discard mode::
+    Drop the newest event records until a sub-buffer becomes available.
++
+This is the only available mode when you specify a blocking timeout.
++
+With this mode, LTTng increments a count of lost event records when an
+event record is lost and saves this count to the trace. A trace reader
+can use the saved discarded event record count of the trace to decide
+whether or not to perform some analysis even if trace data is known to
+be missing.
+
+Overwrite mode::
+    Clear the sub-buffer containing the oldest event records and start
+    writing the newest event records there.
++
+This mode is sometimes called _flight recorder mode_ because it's
+similar to a https://en.wikipedia.org/wiki/Flight_recorder[flight
+recorder]: always keep a fixed amount of the latest data. It's also
+similar to the roll mode of an oscilloscope.
++
+Since LTTng{nbsp}2.8, with this mode, LTTng writes to a given sub-buffer
+its sequence number within its data stream. With a local, network
+streaming, or live tracing session (see the <<session-modes,Tracing
+session modes>> section above), a trace reader can use such sequence
+numbers to report lost packets. A trace reader can use the saved
+discarded sub-buffer (packet) count of the trace to decide whether or
+not to perform some analysis even if trace data is known to be missing.
++
+With this mode, LTTng doesn't write to the trace the exact number of
+lost event records in the lost sub-buffers.
+
+Which mechanism you should choose depends on your context: prioritize
+the newest or the oldest event records in the ring buffer?
+
+Beware that, in overwrite mode, the tracer abandons a _whole sub-buffer_
+as soon as a there's no space left for a new event record, whereas in
+discard mode, the tracer only discards the event record that doesn't
+fit.
+
+Set the event record loss mode of a channel with the nloption:--discard
+and nloption:--overwrite options of the man:lttng-enable-channel(1)
+command.
+
+There are a few ways to decrease your probability of losing event
+records. The <<channel-sub-buf-size-count,Sub-buffer size and count>>
+section below shows how to fine-tune the sub-buffer size and count of a
+channel to virtually stop losing event records, though at the cost of
+greater memory usage.
+
+
+[[channel-sub-buf-size-count]]
+Sub-buffer size and count
+~~~~~~~~~~~~~~~~~~~~~~~~~
+A channel has one or more ring buffer for each CPU of the target system.
+
+See the <<channel-buf-scheme,Buffering scheme>> section above to learn
+how many ring buffers of a given channel are dedicated to each CPU
+depending on its buffering scheme.
+
+Set the size of each sub-buffer the ring buffers of a channel contain
+with the nloption:--subbuf-size option of the
+man:lttng-enable-channel(1) command.
+
+Set the number of sub-buffers each ring buffer of a channel contains
+with the nloption:--num-subbuf option of the man:lttng-enable-channel(1)
+command.
+
+Note that LTTng switching the current sub-buffer of a ring buffer
+(marking a full one as consumable and switching to an available one for
+LTTng to record the next events) introduces noticeable CPU overhead.
+Knowing this, the following list presents a few practical situations
+along with how to configure the sub-buffer size and count for them:
+
+High event throughput::
+    In general, prefer large sub-buffers to lower the risk of losing
+    event records.
++
+Having larger sub-buffers also ensures a lower sub-buffer switching
+frequency (see the <<channel-timers,Timers>> section below).
++
+The sub-buffer count is only meaningful if you create the channel in
+overwrite mode (see the <<channel-er-loss-mode,Event record loss mode>>
+section above): in this case, if LTTng overwrites a sub-buffer, then the
+other sub-buffers are left unaltered.
+
+Low event throughput::
+    In general, prefer smaller sub-buffers since the risk of losing
+    event records is low.
++
+Because LTTng emits events less frequently, the sub-buffer switching
+frequency should remain low and therefore the overhead of the tracer
+shouldn't be a problem.
+
+Low memory system::
+    If your target system has a low memory limit, prefer fewer first,
+    then smaller sub-buffers.
++
+Even if the system is limited in memory, you want to keep the
+sub-buffers as large as possible to avoid a high sub-buffer switching
+frequency.
+
+Note that LTTng uses https://diamon.org/ctf/[CTF] as its trace format,
+which means event record data is very compact. For example, the average
+LTTng kernel event record weights about 32{nbsp}bytes. Therefore, a
+sub-buffer size of 1{nbsp}MiB is considered large.
+
+The previous scenarios highlight the major trade-off between a few large
+sub-buffers and more, smaller sub-buffers: sub-buffer switching
+frequency vs. how many event records are lost in overwrite mode.
+Assuming a constant event throughput and using the overwrite mode, the
+two following configurations have the same ring buffer total size:
+
+Two sub-buffers of 4{nbsp}MiB each::
+    Expect a very low sub-buffer switching frequency, but if LTTng
+    ever needs to overwrite a sub-buffer, half of the event records so
+    far (4{nbsp}MiB) are definitely lost.
+
+Eight sub-buffers of 1{nbsp}MiB each::
+    Expect four times the tracer overhead of the configuration above,
+    but if LTTng needs to overwrite a sub-buffer, only the eighth of
+    event records so far (1{nbsp}MiB) are definitely lost.
+
+In discard mode, the sub-buffer count parameter is pointless: use two
+sub-buffers and set their size according to your requirements.
+
+
+[[channel-max-trace-file-size-count]]
+Maximum trace file size and count
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+By default, trace files can grow as large as needed.
+
+Set the maximum size of each trace file that LTTng writes of a given
+channel with the nloption:--tracefile-size option of the man:lttng-enable-channel(1)
+command.
+
+When the size of a trace file reaches the fixed maximum size of the
+channel, LTTng creates another file to contain the next event records.
+LTTng appends a file count to each trace file name in this case.
+
+If you set the trace file size attribute when you create a channel, the
+maximum number of trace files that LTTng creates is _unlimited_ by
+default. To limit them, use the nloption:--tracefile-count option of
+man:lttng-enable-channel(1). When the number of trace files reaches the
+fixed maximum count of the channel, LTTng overwrites the oldest trace
+file. This mechanism is called _trace file rotation_.
+
+[IMPORTANT]
+====
+Even if you don't limit the trace file count, always assume that LTTng
+manages all the trace files of the tracing session.
+
+In other words, there's no safe way to know if LTTng still holds a given
+trace file open with the trace file rotation feature.
+
+The only way to obtain an unmanaged, self-contained LTTng trace before
+you destroy the tracing session is with the tracing session rotation
+feature (see the <<rotation,Tracing session rotation>> section above),
+which is available since LTTng{nbsp}2.11.
+====
+
+
+[[channel-timers]]
+Timers
+~~~~~~
+Each channel can have up to three optional timers:
+
+Switch timer::
+    When this timer expires, a sub-buffer switch happens: for each ring
+    buffer of the channel, LTTng marks the current sub-buffer as
+    consumable and switches to an available one to record the next
+    events.
++
+A switch timer is useful to ensure that LTTng consumes and commits trace
+data to trace files or to a distant relay daemon (man:lttng-relayd(8))
+periodically in case of a low event throughput.
++
+Such a timer is also convenient when you use large sub-buffers (see the
+<<channel-sub-buf-size-count,Sub-buffer size and count>> section above)
+to cope with a sporadic high event throughput, even if the throughput is
+otherwise low.
++
+Set the period of the switch timer of a channel, or disable the timer
+altogether, with the nloption:--switch-timer option of the
+man:lttng-enable-channel(1) command.
+
+Read timer::
+    When this timer expires, LTTng checks for full, consumable
+    sub-buffers.
++
+By default, the LTTng tracers use an asynchronous message mechanism to
+signal a full sub-buffer so that a consumer daemon can consume it.
++
+When such messages must be avoided, for example in real-time
+applications, use this timer instead.
++
+Set the period of the read timer of a channel, or disable the timer
+altogether, with the nloption:--read-timer option of the
+man:lttng-enable-channel(1) command.
+
+Monitor timer::
+    When this timer expires, the consumer daemon samples some channel
+    (see the <<channel,{sect-channel}>> section above)
+    statistics to evaluate the following trigger conditions:
++
+--
+. The consumed buffer size of a given tracing session becomes greater
+  than some value.
+. The buffer usage of a given channel becomes greater than some value.
+. The buffer usage of a given channel becomes less than some value.
+--
++
+If you disable the monitor timer of a channel{nbsp}__C__:
++
+--
+* The consumed buffer size value of the tracing session of{nbsp}__C__
+  could be wrong for trigger condition type{nbsp}1: the consumed buffer
+  size of{nbsp}__C__ won't be part of the grand total.
+
+* The buffer usage trigger conditions (types{nbsp}2 and{nbsp}3)
+  for{nbsp}__C__ will never be satisfied.
+--
++
+See the <<trigger,TRIGGER>> section above to learn more about triggers.
++
+Set the period of the monitor timer of a channel, or disable the timer
+altogether, with the nloption:--monitor-timer option of the
+man:lttng-enable-channel(1) command.
+
+
+[[recording-event-rule]]
+{sect-recording-event-rule}
+---------------------------
+A _recording event rule_ is a specific type of event rule (see the
+<<"event-rule","{sect-event-rule}">> section above) of which the action is
+to serialize and record the matched event as an _event record_.
+
+Set the explicit conditions of a recording event rule when you create it
+with the man:lttng-enable-event(1) command. A recording event rule also
+has the following implicit conditions:
+
+* The recording event rule itself is enabled.
++
+A recording event rule is enabled on creation.
+
+* The channel to which the recording event rule is attached is enabled.
++
+A channel is enabled on creation.
++
+See the <<channel,{sect-channel}>> section above.
+
+* The tracing session of the recording event rule is active (started).
++
+A tracing session is inactive (stopped) on creation.
++
+See the <<session,{sect-session}>> section above.
+
+* The process for which LTTng creates an event to match is allowed to
+  record events.
++
+All processes are allowed to record events on tracing session
+creation.
++
+Use the man:lttng-track(1) and man:lttng-untrack(1) commands to select
+which processes are allowed to record events based on specific process
+attributes.
+
+You always attach a recording event rule to a channel, which belongs to
+a tracing session, when you create it.
+
+When a recording event rule{nbsp}__ER__ matches an event{nbsp}__E__,
+LTTng attempts to serialize and record{nbsp}__E__ to one of the
+available sub-buffers of the channel to which{nbsp}__E__ is attached.
+
+When multiple matching recording event rules are attached to the same
+channel, LTTng attempts to serialize and record the matched event
+_once_. In the following example, the second recording event rule is
+redundant when both are enabled:
+
+[role="term"]
+----
+$ lttng enable-event --userspace hello:world
+$ lttng enable-event --userspace hello:world --loglevel=TRACE_INFO
+----
+
+List the recording event rules of a specific tracing session
+and/or channel with the man:lttng-list(1) and man:lttng-status(1)
+commands.
+
+Disable a recording event rule with the man:lttng-disable-event(1)
+command.
+
+As of LTTng{nbsp}{lttng_version}, you cannot remove a recording event
+rule: it exists as long as its tracing session exists.
+
+
+include::common-footer.txt[]
+
+
+SEE ALSO
+--------
+man:lttng(1),
+man:lttng-relayd(8),
+man:lttng-sessiond(8)
index a25fd4fbdcbcb8efaa20830e8581467a71342440..dd8c6c701761305fc0095f04ec11e2fa06854f07 100644 (file)
@@ -1,6 +1,6 @@
 lttng-crash(1)
 ==============
-:revdate: 8 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -86,7 +86,4 @@ SEE ALSO
 --------
 man:babeltrace2(1),
 man:lttng(1),
-man:lttng-create(1),
-man:lttng-relayd(8),
-man:lttng-sessiond(8),
-man:lttng-ust(3)
+man:lttng-create(1)
index b1032fb5e9aca52fa1d6334c753c7433ac83708c..daac924f7d369cf8e72bbda1841fa3ff3bfc09ba 100644 (file)
@@ -1,6 +1,6 @@
 lttng-create(1)
 ===============
-:revdate: 8 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -14,7 +14,7 @@ Create a local mode tracing session:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *create* ['SESSION'] [option:--shm-path='DIR']
-      [option:--no-output | option:--output='DIR' | option:--set-url=file://'DIR']
+      [option:--no-output | option:--output='DIR' | option:--set-url=**file://**__DIR__]
 
 Create a network streaming mode tracing session:
 
@@ -25,8 +25,9 @@ Create a network streaming mode tracing session:
 Create a snapshot mode tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *create* ['SESSION'] option:--snapshot
-      [option:--shm-path='DIR'] [option:--set-url='URL' | option:--ctrl-url='URL' option:--data-url='URL']
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *create* ['SESSION'] option:--snapshot [option:--shm-path='DIR']
+      [option:--no-output | option:--output='DIR' | option:--set-url='URL' |
+       option:--ctrl-url='URL' option:--data-url='URL']
 
 Create a live mode tracing session:
 
@@ -37,32 +38,11 @@ Create a live mode tracing session:
 DESCRIPTION
 -----------
 The `lttng create` command creates a new tracing session for your Unix
-user.
-
-A tracing session is a stateful dialogue between you and a
-session daemon (see man:lttng-sessiond(8)) for everything related to
-event recording.
-
-Everything that you do when you control LTTng tracers to record events
-happens within a tracing session. In particular, a tracing session:
-
-* Has its own name.
-
-* Has its own set of trace files, if any.
+user within the connected session daemon (see the ``Session daemon
+connection'' section of man:lttng(1) to learn how a user application
+connects to a session daemon).
 
-* Has its own state of activity (started or stopped).
-
-* Has its own mode (local, network streaming,
-  snapshot, or live).
-+
-See the <<modes,Tracing session modes>> section below to learn more.
-
-* Has its own channels (see man:lttng-enable-channel(1)) to which are
-  attached their own recording event rules (see
-  man:lttng-enable-event(1)).
-
-* Has its own process attribute tracking inclusion sets (see
-  man:lttng-track(1)).
+See man:lttng-concepts(7) to learn more about tracing sessions.
 
 Without the 'SESSION' argument, LTTng automatically generates a tracing
 session name having the ++auto-++__YYYYmmdd__++-++__HHMMSS__ form, where
@@ -81,8 +61,15 @@ the session daemon binary to spawn with the general
 genoption:--sessiond-path option. Avoid automatically spawning a session
 daemon with the general genoption:--no-sessiond option.
 
-List the tracing sessions of your Unix user with the man:lttng-list(1)
-command.
+On success, the `create` command sets the current tracing session (see
+man:lttng-concepts(7) to learn more) to the created tracing session.
+
+Show the status of the current tracing session with the
+man:lttng-status(1) command.
+
+List the tracing sessions of your Unix user, or of all users if
+your Unix user is `root`, within the connected session daemon with the
+man:lttng-list(1) command.
 
 Start and stop a tracing session with the man:lttng-start(1) and
 man:lttng-stop(1) commands.
@@ -90,71 +77,36 @@ man:lttng-stop(1) commands.
 Save and load a tracing session with the man:lttng-save(1) and
 man:lttng-load(1) commands.
 
-Archive the current trace chunk (rotate) a tracing session with the
+Allow and disallow specific processes to record events with the
+man:lttng-track(1) and man:lttng-untrack(1) commands.
+
+Archive the current trace chunk of (rotate) a tracing session with the
 man:lttng-rotate(1) command.
 
 Destroy a tracing session with the man:lttng-destroy(1) command.
 
 
-Current tracing session
-~~~~~~~~~~~~~~~~~~~~~~~
-When you run the `create` command, LTTng creates the
-`$LTTNG_HOME/.lttngrc` file if it doesn't exist (`$LTTNG_HOME` defaults
-to `$HOME`).
-
-`$LTTNG_HOME/.lttngrc` contains the name of the _current tracing
-session_.
-
-When you create a new tracing session with the `create` command, LTTng
-updates the current tracing session.
-
-The following man:lttng(1) commands select the current tracing session
-if you don't specify one:
-
-* man:lttng-add-context(1)
-* man:lttng-clear(1)
-* man:lttng-destroy(1)
-* man:lttng-disable-channel(1)
-* man:lttng-disable-event(1)
-* man:lttng-disable-rotation(1)
-* man:lttng-enable-channel(1)
-* man:lttng-enable-event(1)
-* man:lttng-enable-rotation(1)
-* man:lttng-regenerate(1)
-* man:lttng-rotate(1)
-* man:lttng-save(1)
-* man:lttng-snapshot(1)
-* man:lttng-start(1)
-* man:lttng-status(1)
-* man:lttng-stop(1)
-* man:lttng-track(1)
-* man:lttng-untrack(1)
-* man:lttng-view(1)
-
-Set the current tracing session manually with the
-man:lttng-set-session(1) command, without having to edit the `.lttngrc`
-file.
-
-
 [[modes]]
 Tracing session modes
 ~~~~~~~~~~~~~~~~~~~~~
-LTTng offers four tracing session modes:
+As documented in man:lttng-concepts(7), LTTng offers four tracing
+session modes:
 
 [[local-mode]]Local mode::
     Write the trace data to the local file system.
 +
-The option:--output option specifies the trace path. Using
-option:--set-url=++file://++__DIR__ is equivalent to using
-option:--output='DIR'.
-+
-Disable the file system output with the
-option:--no-output option.
+The trace data output directory is:
 +
-If you don't use any of the option:--output, option:--set-url, or
-option:--no-output options, then LTTng writes the trace data locally to
-the `$LTTNG_HOME/lttng-traces` directory (`$LTTNG_HOME` defaults to
-`$HOME`).
+With the option:--no-output option:::
+    None: the file system output is disabled.
+
+With the option:--output='DIR' or option:--set-url=++file://++__DIR__ option:::
+    The directory 'DIR'.
+
+Otherwise:::
+    A subdirectory, under the `$LTTNG_HOME/lttng-traces` (`$LTTNG_HOME`
+    defaults to `$HOME`) directory, of which the name contains the
+    tracing session name and the date/time.
 
 [[network-streaming-mode]]Network streaming mode::
     Send the trace data over the network to a listening relay daemon
@@ -165,26 +117,28 @@ with the option:--ctrl-url and option:--data-url options (see the
 <<url-format,URL format>> section below).
 
 [[snapshot-mode]]Snapshot mode (option:--snapshot option)::
-    Don't write the trace data to the local file system by default
-    (implicit option:--no-output option): only write the trace data to
-    the local file system or send it to a listening relay daemon
-    (man:lttng-relayd(8)) when LTTng takes a snapshot.
+    Only write the trace data to the local file system or send it to a
+    listening relay daemon (man:lttng-relayd(8)) when LTTng takes a
+    snapshot (see the man:lttng-snapshot(1) command).
 +
-LTTng automatically configures the channels of such a tracing session to
-be snapshot-ready on creation (see man:lttng-enable-channel(1)).
+With this mode, LTTng:
 +
-LTTng takes a snapshot of such a tracing session when:
-+
---
-* You run the man:lttng-snapshot(1) command.
-* LTTng executes a `snapshot-session` trigger action (see
-  man:lttng-add-trigger(1)).
---
+With the option:--no-output option:::
+    Does :not: add any snapshot output to the created tracing
+    session.
+
+With the option:--output option, the option:--set-url option, or the option:--ctrl-url and option:--data-url options:::
+    Adds a snapshot output named `snapshot-1` using the provided
+    path or URL(s) to the created tracing session.
+
+Otherwise:::
+    Adds an automatic snapshot output named `snapshot-1` to the created
+    tracing session.
 +
-Set the default snapshot output destination with the
-option:--set-url option, or with the option:--ctrl-url and
-option:--data-url options (see the <<url-format,URL format>> section
-below).
+The automatic snapshot output is a subdirectory, under the
+`$LTTNG_HOME/lttng-traces` (`$LTTNG_HOME` defaults to `$HOME`)
+directory, of which the name contains the tracing session name and the
+date/time.
 
 [[live-mode]]Live mode (option:--live option)::
     Send the trace data over the network to a listening relay daemon
@@ -199,10 +153,10 @@ with `file://`.
 [[url-format]]
 URL format
 ~~~~~~~~~~
-The argument of the option:--set-url, option:--ctrl-url, and
-option:--data-url options is an URL.
+The argument of the option:--set-url='URL', option:--ctrl-url='URL', and
+option:--data-url='URL' options is an URL.
 
-There are two available URL formats.
+There are two available 'URL' formats.
 
 Local format::
 +
@@ -226,8 +180,8 @@ Network format::
 {nbsp}
 +
 This format is only available when you create the tracing session in
-network streaming, snapshot, or live mode (see the <<modes,Tracing
-session modes>> section above).
+network streaming, snapshot (option:--snapshot), or live (option:--live)
+mode (see the <<modes,Tracing session modes>> section above).
 +
 'NETPROTO':::
     Network protocol, amongst:
@@ -261,9 +215,10 @@ option:--data-url options together.
 --
 +
 ('HOST' | 'IPADDR'):::
-    Hostname or IP address (IPv6 address *must* be enclosed in square
-    brackets (`[` and{nbsp}`]`); see
-    https://www.ietf.org/rfc/rfc2732.txt[RFC{nbsp}2732]).
+    Hostname or IP address.
++
+IPv6 address must be enclosed in square brackets (`[` and{nbsp}`]`);
+see https://www.ietf.org/rfc/rfc2732.txt[RFC{nbsp}2732].
 
 'CTRLPORT':::
     Control TCP port.
@@ -305,24 +260,48 @@ The session daemon must be able to connect to a listening relay daemon
 option:--snapshot::
     Create the tracing session in snapshot mode.
 +
-This is equivalent to using the option:--no-output option and creating
-all the channels of this new tracing session with the
-nloption:--override and nloption:--output=++mmap++ options (see
-man:lttng-enable-channel(1)).
+This is equivalent to:
++
+* One of:
++
+--
+With the option:--no-output option::
+    Not adding any snapshot output after LTTng creates the tracing
+    session.
+
+With the option:--output option, the option:--set-url option, or the option:--ctrl-url and option:--data-url options::
+    Adding a snapshot output named `snapshot-1` using the provided path
+    or URL(s) immediately after LTTng creates the tracing session.
+
+Otherwise::
+    Adding an automatic snapshot output named `snapshot-1` immediately
+    after LTTng creates the tracing session.
++
+The automatic snapshot output is a subdirectory, under the
+`$LTTNG_HOME/lttng-traces` (`$LTTNG_HOME` defaults to `$HOME`)
+directory, of which the name contains the tracing session name and the
+date/time.
+--
+
+* Forcing all the channels to be created for the tracing session to be
+  configured with the nloption:--override and nloption:--output=++mmap++
+  options (see man:lttng-enable-channel(1)).
 
 
 Output
 ~~~~~~
 option:--no-output::
-    In local mode (see the <<modes,Tracing session modes>> section
-    above), do :not: write any trace data.
+    Depending on the tracing session mode (see the <<modes,Tracing
+    session modes>> section above):
 +
-You may :not: use this option with the option:--output option.
+Local mode:::
+    Disable the file system output.
+
+Snapshot mode (option:--snapshot option):::
+    Do :not: add a snapshot output after creating the tracing session.
 
 option:-o 'DIR', option:--output='DIR'::
-    In local mode, set the trace output path to 'DIR'.
-+
-You may :not: use this option with the option:--no-output option.
+    Equivalent to option:--set-url=++file://++__DIR__.
 
 option:--shm-path='DIR'::
     Set the path of the directory containing the shared memory files
@@ -338,20 +317,46 @@ option:-C 'URL', option:--ctrl-url='URL'::
     Set the control path URL to 'URL'.
 +
 You must also use the option:--data-url option.
++
+Not available in local mode (see the <<modes,Tracing session modes>>
+section above).
++
+In snapshot mode, this is equivalent to using the nloption:--ctrl-url
+option of the `add-output` action of the man:lttng-snapshot(1) command
+immediately after creating the tracing session.
 
 option:-D 'URL', option:--data-url='URL'::
     Set the trace data path URL to 'URL'.
 +
 You must also use the option:--ctrl-url option.
++
+Not available in local mode (see the <<modes,Tracing session modes>>
+section above).
++
+In snapshot mode, this is equivalent to using the nloption:--data-url
+option of the `add-output` action of the man:lttng-snapshot(1) command
+immediately after creating the tracing session.
 
 option:-U 'URL', option:--set-url='URL'::
     Set the destination URL of the control path and trace data to 'URL'.
 +
-This URL stays the same as long as the tracing session exists.
+This URL remains unchanged as long as the tracing session exists.
++
+Depending on the tracing session mode (see the <<modes,Tracing session
+modes>> section above):
 +
-In local mode (see the <<modes,Tracing session modes>> section above),
-'URL' must start with `file://`, followed with the destination directory
-path on the local file system.
+Local mode:::
+    'URL' must start with `file://`, followed with the destination
+    directory path on the local file system.
+
+Network streaming and live modes:::
+    Equivalent to using both the option:--ctrl-url and option:--data-url
+    options.
+
+Snapshot mode (option:--snapshot option):::
+    Equivalent to using the 'URL' non-option argument of the
+    `add-output` action of the man:lttng-snapshot(1) command immediately
+    after creating the tracing session.
 
 
 include::common-cmd-help-options.txt[]
@@ -363,12 +368,15 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-destroy(1),
 man:lttng-enable-channel(1),
+man:lttng-list(8),
 man:lttng-relayd(8),
 man:lttng-rotate(1),
+man:lttng-save(1),
 man:lttng-sessiond(8),
 man:lttng-set-session(1),
 man:lttng-start(1),
-man:lttng-stop(1),
+man:lttng-status(8),
 man:lttng-track(1)
index 2ddd05a99c4f1fb477a870df06f3c9c95e5f64f6..5084485fd2a8ce0103929a39e3bdddcb5c059d98 100644 (file)
@@ -1,6 +1,6 @@
 lttng-destroy(1)
 ================
-:revdate: 12 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -16,47 +16,48 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-The `lttng destroy` command destroys one or more tracing sessions
-previously created with the man:lttng-create(1) command.
-
-``Destroying'' a tracing session means freeing the resources acquired by
-the LTTng daemons and tracers for it, also making sure to flush all the
-recorded trace data to either the local file system or the connected
-LTTng relay daemon (see man:lttng-relayd(8)), depending on the tracing
-session mode.
-
-Use the `destroy` command to destroy:
+The `lttng destroy` command destroys:
 
 With the 'SESSION' argument::
     The tracing session named 'SESSION'.
 
 With the option:--all option::
-    *All* the tracing sessions of your Unix user,
-    as listed in the output of `lttng list` (see man:lttng-list(1)).
+    *All* the tracing sessions of the connected session daemon for your
+    Unix user, or for all users if your Unix user is `root`, as listed
+    in the output of `lttng list` (see man:lttng-list(1)).
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
 
 Otherwise::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 +
 In that case, the current tracing session becomes nonexistent.
 
+See man:lttng-concepts(7) to learn more about tracing sessions.
+
+``Destroying'' a tracing session means freeing the resources which the
+LTTng daemons and tracers acquired for it, also making sure to flush all
+the recorded trace data to either the local file system or the connected
+LTTng relay daemon (see man:lttng-relayd(8)), depending on the tracing
+session mode.
+
 The `destroy` command stops any tracing activity within the selected
-tracing session(s). By default, the command runs the implicit
+tracing session(s). By default, the command runs an implicit
 man:lttng-stop(1) command to ensure that the trace data of the tracing
 session(s) is valid before it exits. Make the command exit immediately
 with the option:--no-wait option. In this case, however, the traces(s)
 might not be valid when the command exits, and there's no way to know
-when it/they becomes valid.
+when it/they become valid.
 
 If, for a tracing session{nbsp}__TS__ to destroy with the `destroy`
 command, the following statements are true:
 
-* You don't use the option:--no-wait option.
+* You don't specify the option:--no-wait option.
 
-* LTTng archived the current trace chunk (see man:lttng-rotate(1) and
-  man:lttng-enable-rotation(1)) of{nbsp}__TS__ at least once during its
-  lifetime.
+* LTTng archived the current trace chunk (see man:lttng-concepts(7))
+  of{nbsp}__TS__ at least once during its lifetime.
 
 Then all the subdirectories of the output directory of{nbsp}__TS__
 (local or remote) are considered trace chunk archives once the `destroy`
@@ -68,8 +69,10 @@ include::common-cmd-options-head.txt[]
 
 
 option:-a, option:--all::
-    Destroy all the tracing sessions of your Unix user, as listed in the
-    output of man:lttng-list(1).
+    Destroy all the tracing sessions of your Unix user, or of all users
+    if your Unix user is `root`, as listed in the output of
+    man:lttng-list(1), instead of the current tracing session or the
+    tracing session named 'SESSION'.
 
 option:-n, option:--no-wait::
     Do :not: ensure that the trace data of the tracing session(s) to
@@ -85,6 +88,6 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
-man:lttng-list(1),
-man:lttng-set-session(1)
+man:lttng-list(1)
index be845e65d68a589d8e8314f6c31d673aa3371943..164dfdd2f987431a5af2bb4b5c6838d0decbaa30 100644 (file)
@@ -1,6 +1,6 @@
 lttng-disable-channel(1)
 ========================
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 NAME
 ----
@@ -17,13 +17,17 @@ SYNOPSIS
 DESCRIPTION
 -----------
 The `lttng disable-channel` command disables one or more channels
-previously enabled with the man:lttng-enable-channel(1) command.
+previously enabled with the man:lttng-enable-channel(1) command
+which belong to:
 
-A channel always belongs to a tracing session (see man:lttng-create(1)
-to create a tracing session). Without the option:--session option, the
-`disable-channel` command disables one or more channels of the current
-tracing session (see man:lttng-create(1) and man:lttng-set-session(1) to
-learn more about the current tracing session).
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
+
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+See man:lttng-concepts(7) to learn more about channels.
 
 The `disable-channel` command disables one channel per 'CHANNEL'
 argument.
@@ -47,8 +51,8 @@ option:-u, option:--userspace::
     Disable one or more user space channels.
 
 
-Target
-~~~~~~
+Recording target
+~~~~~~~~~~~~~~~~
 option:-s 'SESSION', option:--session='SESSION'::
     Disable one or more channels of the tracing session named 'SESSION'
     instead of the current tracing session.
@@ -63,4 +67,5 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-enable-channel(1)
index 9719a631c1fa441bdbcd35b49f19901140a3caac..82cea09889f9289dd9bc1b263eca345d5ce318fe 100644 (file)
@@ -1,6 +1,6 @@
 lttng-disable-event(1)
 ======================
-:revdate: 21 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -33,7 +33,22 @@ DESCRIPTION
 -----------
 The `lttng disable-event` command disables one or more enabled recording
 event rules previously created with the man:lttng-enable-event(1)
-command.
+command which belong to:
+
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
+
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+With the option:--channel='CHANNEL' option::
+    The channel named 'CHANNEL'.
+
+Without the option:--channel option::
+    The channel named `channel0`.
+
+See man:lttng-concepts(7) to learn more about recording event rules.
 
 As of LTTng{nbsp}{lttng_version}, the `disable-event` command can only
 find recording event rules to disable by their instrumentation point
@@ -41,7 +56,7 @@ type and event name conditions. Therefore, you cannot disable recording
 event rules having a specific instrumentation point log level condition,
 for example.
 
-List the existing recording event rules of a given tracing session
+List the recording event rules of a given tracing session
 and/or channel with the man:lttng-list(1) command.
 
 Without the option:--all-events option, the `disable-event` command
@@ -50,14 +65,6 @@ exact event name condition pattern of the recording event rule to
 disable, as listed in the output of `lttng list` (see
 man:lttng-list(1)).
 
-Without the option:--channel option, the `disable-event` command selects
-the channel named `channel0`.
-
-Without the option:--session option, the `disable-event` command selects
-the current tracing session (see man:lttng-create(1) and
-man:lttng-set-session(1) to learn more about the current tracing
-session).
-
 You may disable an enabled recording event rule regardless of the
 activity (started or stopped) of its tracing session (see
 man:lttng-start(1) and man:lttng-stop(1)).
@@ -137,7 +144,7 @@ Event name condition
 ~~~~~~~~~~~~~~~~~~~~
 option:-a, option:--all-events::
     Disable recording event rules regardless of their event name
-    condition is.
+    condition.
 
 
 include::common-cmd-help-options.txt[]
@@ -149,5 +156,6 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-enable-event(1),
 man:lttng-list(1)
index f9255a94e534ff3a445c3f9e74883a55e6851d53..0c23031a6423522ac120be4b77801d43a962c194 100644 (file)
@@ -1,11 +1,11 @@
 lttng-disable-rotation(1)
 =========================
-:revdate: 21 April 2021
+:revdate: 30 April 2021
 
 
 NAME
 ----
-lttng-disable-rotation - Unset a tracing session rotation schedule
+lttng-disable-rotation - Unset an LTTng tracing session rotation schedule
 
 
 SYNOPSIS
@@ -24,9 +24,11 @@ With the option:--session='SESSION' option::
     The tracing session named 'SESSION'.
 
 Without the option:--session option::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+See man:lttng-concepts(7) to learn more about the tracing session
+rotation and trace chunk concepts.
 
 
 include::common-cmd-options-head.txt[]
index b9c6d1696afd0c44042c70d0a457b3da70e5b5f7..271ada1ceb3b0bebb3407b039bda57f7fbc9e8ec 100644 (file)
@@ -1,6 +1,6 @@
 lttng-enable-channel(1)
 =======================
-:revdate: 9 November 2018
+:revdate: 3 May 2021
 
 
 NAME
@@ -14,25 +14,26 @@ Create a Linux kernel channel:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *enable-channel* option:--kernel
-      [option:--overwrite] [option:--output=(`mmap` | `splice`)]
+      [option:--discard | option:--overwrite] [option:--output=(**mmap** | **splice**)]
       [option:--subbuf-size='SIZE'] [option:--num-subbuf='COUNT']
       [option:--switch-timer='PERIODUS'] [option:--read-timer='PERIODUS']
-      [option:--monitor-timer='PERIODUS']
-      [option:--tracefile-size='SIZE'] [option:--tracefile-count='COUNT']
+      [option:--monitor-timer='PERIODUS'] [option:--buffers-global]
+      [option:--tracefile-size='SIZE' [option:--tracefile-count='COUNT']]
       [option:--session='SESSION'] 'CHANNEL'
 
 Create a user space channel:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *enable-channel* option:--userspace
-      [option:--overwrite | option:--blocking-timeout='TIMEOUTUS'] [option:--buffers-pid]
+      [option:--overwrite | [option:--discard] option:--blocking-timeout='TIMEOUTUS']
+      [option:--output=**mmap**] [option:--buffers-uid | option:--buffers-pid]
       [option:--subbuf-size='SIZE'] [option:--num-subbuf='COUNT']
       [option:--switch-timer='PERIODUS'] [option:--read-timer='PERIODUS']
       [option:--monitor-timer='PERIODUS']
-      [option:--tracefile-size='SIZE'] [option:--tracefile-count='COUNT']
+      [option:--tracefile-size='SIZE' [option:--tracefile-count='COUNT']]
       [option:--session='SESSION'] 'CHANNEL'
 
-Enable existing channel(s):
+Enable channel(s):
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *enable-channel* (option:--userspace | option:--kernel)
@@ -41,425 +42,318 @@ Enable existing channel(s):
 
 DESCRIPTION
 -----------
-The `lttng enable-channel` command can create a new channel, or enable
-one or more existing and disabled ones.
-
-A channel is the owner of sub-buffers holding recorded events. Recording
-event rules, when created using man:lttng-enable-event(1), are always
-assigned to a channel. When creating a new channel, many parameters
-related to those sub-buffers can be fine-tuned. They are described in
-the subsections below.
+The `lttng enable-channel` command does one of:
 
-When 'CHANNEL' does not name an existing channel, a channel named
-'CHANNEL' is created. Otherwise, the disabled channel named 'CHANNEL'
-is enabled.
+* Create a channel named 'CHANNEL'.
 
-Note that the man:lttng-enable-event(1) command can automatically
-create default channels when no channel exist.
+* Enable one or more disabled channels named 'CHANNEL'
+  (non-option argument, comma-separated).
 
-A channel is always contained in a tracing session
-(see man:lttng-create(1) for creating a tracing session). The
-session in which a channel is created using `lttng enable-channel` can
-be specified using the option:--session option. If the option:--session
-option is omitted, the current tracing session is targeted.
+See man:lttng-concepts(7) to learn more about channels.
 
-Existing enabled channels can be disabled using
-man:lttng-disable-channel(1). Channels of a given session can be
-listed using man:lttng-list(1).
+The channel(s) to create or enable belong to:
 
-See the <<limitations,LIMITATIONS>> section below for a list of
-limitations of this command to consider.
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-Event loss modes
-~~~~~~~~~~~~~~~~
-LTTng tracers are non-blocking by default: when no empty sub-buffer
-exists, losing events is acceptable when the alternative would be to
-cause substantial delays in the instrumented application's execution.
-
-LTTng privileges performance over integrity, aiming at perturbing the
-traced system as little as possible in order to make tracing of subtle
-race conditions and rare interrupt cascades possible.
-
-You can allow the user space tracer to block with a
-option:--blocking-timeout option set to a positive value or to `inf`,
-and with an application which is instrumented with LTTng-UST started
-with a set `LTTNG_UST_ALLOW_BLOCKING` environment variable. See
-man:lttng-ust(3) for more details.
-
-When it comes to losing events because no empty sub-buffer is available,
-the channel's event loss mode, specified by one of the option:--discard
-and option:--overwrite options, determines what to do amongst:
-
-Discard::
-    Drop the newest events until a sub-buffer is released.
-
-Overwrite::
-    Clear the sub-buffer containing the oldest recorded events and start
-    recording the newest events there. This mode is sometimes called
-    _flight recorder mode_ because it behaves like a flight recorder:
-    always keep a fixed amount of the latest data.
-
-Which mechanism to choose depends on the context: prioritize the newest
-or the oldest events in the ring buffer?
-
-Beware that, in overwrite mode (option:--overwrite option), a whole
-sub-buffer is abandoned as soon as a new event doesn't find an empty
-sub-buffer, whereas in discard mode (option:--discard option), only the
-event that doesn't fit is discarded.
-
-Also note that a count of lost events is incremented and saved in the
-trace itself when an event is lost in discard mode, whereas no
-information is kept when a sub-buffer gets overwritten before being
-committed.
-
-The probability of losing events, if it is experience in a given
-context, can be reduced by fine-tuning the sub-buffers count and size
-(see next subsection).
-
-
-Sub-buffers count and size
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-The option:--num-subbuf and option:--subbuf-size options respectively
-set the number of sub-buffers and their individual size when creating
-a new channel.
-
-Note that there is a noticeable tracer's CPU overhead introduced when
-switching sub-buffers (marking a full one as consumable and switching
-to an empty one for the following events to be recorded). Knowing this,
-the following list presents a few practical situations along with how
-to configure sub-buffers for them when creating a channel in overwrite
-mode (option:--overwrite option):
-
-High event throughput::
-    In general, prefer bigger sub-buffers to lower the risk of losing
-    events. Having bigger sub-buffers also ensures a lower sub-buffer
-    switching frequency. The number of sub-buffers is only meaningful
-    if the channel is enabled in overwrite mode: in this case, if a
-    sub-buffer overwrite happens, the other sub-buffers
-    are left unaltered.
-
-Low event throughput::
-    In general, prefer smaller sub-buffers since the risk of losing
-    events is already low. Since events happen less frequently, the
-    sub-buffer switching frequency should remain low and thus the
-    tracer's overhead should not be a problem.
-
-Low memory system::
-    If the target system has a low memory limit, prefer fewer first,
-    then smaller sub-buffers. Even if the system is limited in memory,
-    it is recommended to keep the sub-buffers as big as possible to
-    avoid a high sub-buffer switching frequency.
-
-In discard mode (option:--discard option), the sub-buffers count
-parameter is pointless: using two sub-buffers and setting their size
-according to the requirements of the context is fine.
-
-
-Switch timer
-~~~~~~~~~~~~
-When a channel's switch timer fires, a sub-buffer switch happens. This
-timer may be used to ensure that event data is consumed and committed
-to trace files periodically in case of a low event throughput.
-
-It's also convenient when big sub-buffers are used to cope with sporadic
-high event throughput, even if the throughput is normally lower.
-
-Use the option:--switch-timer option to control the switch timer's
-period of the channel to create.
-
-
-Read timer
-~~~~~~~~~~
-By default, an internal notification mechanism is used to signal a full
-sub-buffer so that it can be consumed. When such notifications must be
-avoided, for example in real-time applications, the channel's read timer
-can be used instead. When the read timer fires, sub-buffers are checked
-for consumption when they are full.
-
-Use the option:--read-timer option to control the read timer's period of
-the channel to create.
-
-
-Monitor timer
-~~~~~~~~~~~~~
-When a channel's monitor timer fires, its registered trigger conditions
-are evaluated using the current values of its properties (for example,
-the current usage of its sub-buffers). When a trigger condition is true,
-LTTng executes its associated action. The only type of action currently
-supported is to notify one or more user applications.
-
-See the installed $$C/C++$$ headers in `lttng/action`,
-`lttng/condition`, `lttng/notification`, and `lttng/trigger` to learn
-more about application notifications and triggers.
-
-Use the option:--monitor-timer option to control the monitor timer's
-period of the channel to create.
+NOTE: The man:lttng-enable-event(1) command can automatically create a
+default channel when no channel exists for the provided tracing domain.
 
+List the channels of a given tracing session with the
+man:lttng-list(1) and man:lttng-status(1) commands.
 
-Buffering scheme
-~~~~~~~~~~~~~~~~
-In the user space tracing domain, two buffering schemes are available
-when creating a channel:
+Disable an enabled channel with the man:lttng-disable-channel(1)
+command.
 
-Per-process buffering (option:--buffers-pid option)::
-    Keep one ring buffer per process.
+[IMPORTANT]
+====
+As of LTTng{nbsp}{lttng_version}, you may :not: perform the following
+operations with the `enable-channel` command:
 
-Per-user buffering (option:--buffers-uid option)::
-    Keep one ring buffer for all the processes of a single user.
+* Change an attribute of an existing channel.
 
-The per-process buffering scheme consumes more memory than the per-user
-option if more than one process is instrumented for LTTng-UST.
-However, per-process buffering ensures that one process having a high
-event throughput won't fill all the shared sub-buffers, only its own.
+* Enable a disabled channel once its tracing session has been active
+  (started; see man:lttng-start(1)) at least once.
 
-The Linux kernel tracing domain only has one available buffering scheme
-which is to use a single ring buffer for the whole system
-(option:--buffers-global option).
+* Create a channel once its tracing session has been active at least
+  once.
 
+* Create a user space channel with a given buffering scheme
+  (option:--buffers-uid or option:--buffers-pid options) and create a
+  second user space channel with a different buffering scheme in the
+  same tracing session.
+====
 
-Trace files limit and size
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-By default, trace files can grow as large as needed. The maximum size
-of each trace file written by a channel can be set on creation using the
-option:--tracefile-size option. When such a trace file's size reaches
-the channel's fixed maximum size, another trace file is created to hold
-the next recorded events. A file count is appended to each trace file
-name in this case.
 
-If the option:--tracefile-size option is used, the maximum number of
-created trace files is unlimited. To limit them, the
-option:--tracefile-count option can be used. This option is always used
-in conjunction with the option:--tracefile-size option.
+include::common-cmd-options-head.txt[]
 
-For example, consider this command:
 
-[role="term"]
-----
-$ lttng enable-channel --kernel --tracefile-size=4096 \
-                     --tracefile-count=32 my-channel
-----
+Tracing domain
+~~~~~~~~~~~~~~
+One of:
 
-Here, for each stream, the maximum size of each trace file is
-4 kiB and there can be a maximum of 32 different files. When there is
-no space left in the last file, _trace file rotation_ happens: the first
-file is cleared and new sub-buffers containing events are written there.
+option:-k, option:--kernel::
+    Create or enable channels in the Linux kernel domain.
 
-LTTng does not guarantee that you can view the trace of an active
-tracing session before you run the man:lttng-stop(1) command, even
-with multiple trace files, because LTTng could overwrite them at any
-moment, or some of them could be incomplete. You can archive a
-tracing session's current trace chunk while the tracing session is
-active to obtain an unmanaged and self-contained LTTng trace: see
-the man:lttng-rotate(1) and man:lttng-enable-rotation(1) commands.
+option:-u, option:--userspace::
+    Create or enable channels in the user space domain.
 
 
-include::common-cmd-options-head.txt[]
+Recording target
+~~~~~~~~~~~~~~~~
+option:-s 'SESSION', option:--session='SESSION'::
+    Create or enable channels in the tracing session named 'SESSION'
+    instead of the current tracing session.
 
 
-Domain
-~~~~~~
+Buffering scheme
+~~~~~~~~~~~~~~~~
 One of:
 
-option:-k, option:--kernel::
-    Enable channel in the Linux kernel domain.
+option:--buffers-global::
+    Allocate a single set of ring buffers for the whole system.
++
+Only available with the option:--kernel option.
++
+As of LTTng{nbsp}{lttng_version}, this is the default buffering scheme
+for the Linux kernel tracing domain, but this may change in the future.
 
-option:-u, option:--userspace::
-    Enable channel in the user space domain.
+option:--buffers-pid::
+    Allocate one set of ring buffers (one per CPU) for each instrumented
+    process of:
++
+--
+If you connect to the root session daemon::
+    All Unix users.
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
 
+Otherwise::
+    Your Unix user.
+--
++
+Only available with the option:--userspace option.
 
-Target
-~~~~~~
-option:-s 'SESSION', option:--session='SESSION'::
-    Create or enable channel in the tracing session named 'SESSION'
-    instead of the current tracing session.
+option:--buffers-uid::
+    Allocate one set of ring buffers (one per CPU) shared by all the
+    instrumented processes of:
++
+--
+If you connect to the root session daemon::
+    Each Unix user.
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
+
+Otherwise::
+    Your Unix user.
+--
++
+Only available with the option:--userspace option.
++
+As of LTTng{nbsp}{lttng_version}, this is the default buffering scheme
+for the user space tracing domain, but this may change in the future.
 
 
-Event loss mode
-~~~~~~~~~~~~~~~
+Event record loss mode
+~~~~~~~~~~~~~~~~~~~~~~
 option:--blocking-timeout='TIMEOUTUS'::
-    Set the channel's blocking timeout value to 'TIMEOUTUS' µs for
-    instrumented applications executed with a set
-    `LTTNG_UST_ALLOW_BLOCKING` environment variable:
+    Set the channel's blocking timeout value to __TIMEOUTUS__{nbsp}µs
+    for instrumented applications executed with a set
+    `LTTNG_UST_ALLOW_BLOCKING` environment variable.
++
+'TIMEOUTUS' is one of:
 +
 --
-0 (default)::
+`0` (default)::
     Do not block (non-blocking mode).
 
 `inf`::
-    Block forever until room is available in the sub-buffer to write the
-    event record.
+    Block forever until a sub-buffer is available to write the event
+    record.
 
-__n__, a positive value::
-    Wait for at most __n__ µs when trying to write into a sub-buffer.
-    After __n__ µs, discard the event record.
+__N__, a positive value::
+    Wait for at most __N__{nbsp}µs when trying to write to a sub-buffer.
+    After __N__{nbsp}µs, discard the event record.
 --
 +
-This option is only available with the option:--userspace option and
-without the option:--overwrite option.
+This option is only available with both the option:--userspace and
+option:--discard options.
 
 One of:
 
 option:--discard::
-    Discard events when sub-buffers are full (default).
+    Discard event records when there's no available sub-buffer.
++
+As of LTTng{nbsp}{lttng_version}, this is the default event record loss
+mode, but this may change in the future.
 
 option:--overwrite::
-    Flight recorder mode: always keep a fixed amount of the latest
-    data.
+    Overwrite the whole sub-buffer containing the oldest event records
+    when there's no available sub-buffer (flight recorder mode).
 
 
 Sub-buffers
 ~~~~~~~~~~~
 option:--num-subbuf='COUNT'::
-    Use 'COUNT' sub-buffers. Rounded up to the next power of two.
+    Use 'COUNT' sub-buffers per ring buffer.
++
+The effective value is 'COUNT' rounded up to the next power of two.
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options:
-  {default_ust_uid_channel_subbuf_num}
-* option:--userspace and option:--buffers-pid options:
-  {default_ust_pid_channel_subbuf_num}
-* option:--kernel option: {default_kernel_channel_subbuf_num}
-* `metadata` channel: {default_metadata_subbuf_num}
+option:--userspace and option:--buffers-uid options:::
+    +{default_ust_uid_channel_subbuf_num}+
+option:--userspace and option:--buffers-pid options:::
+    +{default_ust_pid_channel_subbuf_num}+
+option:--kernel and option:--buffers-global options:::
+    +{default_kernel_channel_subbuf_num}+
+`metadata` channel:::
+    +{default_metadata_subbuf_num}+
 
 option:--output='TYPE'::
     Set channel's output type to 'TYPE'.
 +
-Available types: `mmap` (always available) and `splice` (only available
-with the option:--kernel option).
+'TYPE' is one of:
++
+--
+`mmap`:::
+    Share ring buffers between the tracer and the consumer daemon with
+    the man:mmap(2) system call.
+
+`splice`:::
+    Share ring buffers between the tracer and the consumer daemon
+    with the man:splice(2) system call.
++
+Only available with the option:--kernel option.
+--
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options: `mmap`
-* option:--userspace and option:--buffers-pid options: `mmap`
-* option:--kernel option: `splice`
-* `metadata` channel: `mmap`
+option:--userspace and option:--buffers-uid options:::
+    `mmap`
+option:--userspace and option:--buffers-pid options:::
+    `mmap`
+option:--kernel and option:--buffers-global options:::
+    `splice`
+`metadata` channel:::
+    `mmap`
 
 option:--subbuf-size='SIZE'::
-    Set the individual size of sub-buffers to 'SIZE' bytes.
-    The `k` (kiB), `M` (MiB), and `G` (GiB) suffixes are supported.
-    Rounded up to the next power of two.
+    Set the size of each sub-buffer to 'SIZE' bytes.
++
+The effective value is 'SIZE' rounded up to the next power of two.
++
+The `k`{nbsp}(KiB), `M`{nbsp}(MiB), and `G`{nbsp}(GiB) suffixes are
+supported.
 +
 The minimum sub-buffer size, for each tracer, is the maximum value
-between the default below and the system's page size. The following
-command shows the current system's page size: `getconf PAGE_SIZE`.
+between the default below and the system page size (see man:getconf(1)
+with the `PAGE_SIZE` variable).
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options:
-  {default_ust_uid_channel_subbuf_size}
-* option:--userspace and option:--buffers-pid options:
-  {default_ust_pid_channel_subbuf_size}
-* option:--kernel option: {default_kernel_channel_subbuf_size}
-* `metadata` channel: {default_metadata_subbuf_size}
-
-
-Buffering scheme
-~~~~~~~~~~~~~~~~
-One of:
-
-option:--buffers-global::
-    Use shared sub-buffers for the whole system (only available with the
-    option:--kernel option).
-
-option:--buffers-pid::
-    Use different sub-buffers for each traced process (only available
-    with the the option:--userspace option). This is the default
-    buffering scheme for user space channels.
-
-option:--buffers-uid::
-    Use shared sub-buffers for all the processes of the user running
-    the command (only available with the option:--userspace option).
+option:--userspace and option:--buffers-uid options:::
+    +{default_ust_uid_channel_subbuf_size}+
+option:--userspace and option:--buffers-pid options:::
+    +{default_ust_pid_channel_subbuf_size}+
+option:--kernel and option:--buffers-global options:::
+    +{default_kernel_channel_subbuf_size}+
+`metadata` channel:::
+    +{default_metadata_subbuf_size}+
 
 
 Trace files
 ~~~~~~~~~~~
 option:--tracefile-count='COUNT'::
-    Limit the number of trace files created by this channel to
-    'COUNT'. 0 means unlimited. Default:
-    {default_channel_tracefile_count}.
+    Limit the number of trace files which LTTng writes for this channel
+    to 'COUNT'.
 +
-Use this option in conjunction with the option:--tracefile-size option.
+'COUNT' set to `0` means ``unlimited''.
 +
-The file count within a stream is appended to each created trace
-file. If 'COUNT' files are created and more events need to be recorded,
-the first trace file of the stream is cleared and used again.
+Default: +{default_channel_tracefile_count}+.
++
+You must also use the option:--tracefile-size option with this option.
 
 option:--tracefile-size='SIZE'::
-    Set the maximum size of each trace file written by
-    this channel within a stream to 'SIZE' bytes. 0 means unlimited.
-    Default: {default_channel_tracefile_size}.
+    Set the maximum size of each trace file which LTTng writes for
+    this channel to __SIZE__{nbsp}bytes.
++
+'SIZE' set to `0` means ``unlimited''.
++
+Default: +{default_channel_tracefile_size}+.
 +
-Note: traces generated with this option may inaccurately report
-discarded events as of CTF 1.8.
+NOTE: Data streams which LTTng writes for a channel configured with this
+option may inaccurately report discarded event records as of
+CTF{nbsp}1.8.
 
 
 Timers
 ~~~~~~
-option:--monitor-timer::
-    Set the channel's monitor timer's period to 'PERIODUS' µs. 0 means a
-    disabled monitor timer.
+option:--monitor-timer='PERIODUS'::
+    Set the period of the monitor timer of the channel to
+    __PERIODUS__{nbsp}µs.
++
+Set 'PERIODUS' to `0` to disable the monitor timer.
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options:
-  {default_ust_uid_channel_monitor_timer}
-* option:--userspace and option:--buffers-pid options:
-  {default_ust_pid_channel_monitor_timer}
-* option:--kernel option: {default_kernel_channel_monitor_timer}
-
-option:--read-timer::
-    Set the channel's read timer's period to 'PERIODUS' µs. 0 means a
-    disabled read timer.
+option:--userspace and option:--buffers-uid options:::
+    +{default_ust_uid_channel_monitor_timer}+
+option:--userspace and option:--buffers-pid options:::
+    +{default_ust_pid_channel_monitor_timer}+
+option:--kernel and option:--buffers-global options:::
+    +{default_kernel_channel_monitor_timer}+
+
+option:--read-timer='PERIODUS'::
+    Set the period of the read timer of the channel to
+    __PERIODUS__{nbsp}µs.
++
+Set 'PERIODUS' to `0` to disable the read timer.
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options:
-  {default_ust_uid_channel_read_timer}
-* option:--userspace and option:--buffers-pid options:
-  {default_ust_pid_channel_read_timer}
-* option:--kernel option: {default_kernel_channel_read_timer}
-* `metadata` channel: {default_metadata_read_timer}
+option:--userspace and option:--buffers-uid options:::
+    +{default_ust_uid_channel_read_timer}+
+option:--userspace and option:--buffers-pid options:::
+    +{default_ust_pid_channel_read_timer}+
+option:--kernel and option:--buffers-global options:::
+    +{default_kernel_channel_read_timer}+
+`metadata` channel:::
+    +{default_metadata_read_timer}+
 
 option:--switch-timer='PERIODUS'::
-    Set the channel's switch timer's period to 'PERIODUS' µs. 0 means
-    a disabled switch timer.
+    Set the period of the switch timer of the channel to
+    __PERIODUS__{nbsp}µs.
++
+Set 'PERIODUS' to `0` to disable the switch timer.
 +
 Default values:
 +
-* option:--userspace and option:--buffers-uid options:
-  {default_ust_uid_channel_switch_timer}
-* option:--userspace and option:--buffers-pid options:
-  {default_ust_pid_channel_switch_timer}
-* option:--kernel option: {default_kernel_channel_switch_timer}
-* `metadata` channel: {default_metadata_switch_timer}
+option:--userspace and option:--buffers-uid options:::
+    +{default_ust_uid_channel_switch_timer}+
+option:--userspace and option:--buffers-pid options:::
+    +{default_ust_pid_channel_switch_timer}+
+option:--kernel and option:--buffers-global options:::
+    +{default_kernel_channel_switch_timer}+
+`metadata` channel:::
+    +{default_metadata_switch_timer}+
 
 
 include::common-cmd-help-options.txt[]
 
 
-[[limitations]]
-LIMITATIONS
------------
-As of this version of LTTng, it is not possible to perform the following
-actions with the `lttng enable-channel` command:
-
-* Reconfigure a channel once it is created.
-* Re-enable a disabled channel once its tracing session has been active
-  at least once.
-* Create a channel once its tracing session has been active
-  at least once.
-* Create a user space channel with a given buffering scheme
-  (option:--buffers-uid or option:--buffers-pid options) and create
-  a second user space channel with a different buffering scheme in the
-  same tracing session.
-
-
 include::common-cmd-footer.txt[]
 
 
 SEE ALSO
 --------
-man:lttng-disable-channel(1),
 man:lttng(1),
-man:lttng-ust(3)
+man:lttng-concepts(7),
+man:lttng-disable-channel(1),
+man:lttng-list(1)
index 6acdbcd2982479407e545569b37ea1ef833ffe9e..5b096227e3025a124efd800d21e5d3de8d8728e3 100644 (file)
@@ -1,6 +1,6 @@
 lttng-enable-event(1)
 =====================
-:revdate: 13 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -50,98 +50,42 @@ The `lttng enable-event` command does one of:
 
 * Create one or more recording event rules.
 
-* Enable one or more existing, disabled recording event rules.
+* Enable one or more disabled recording event rules.
 +
 See the <<enable,Enable a disabled recording event rule>> section
 below.
 
-An _instrumentation point_ is a point, within a piece of software,
-which, when executed, creates an LTTng _event_.
+See man:lttng-concepts(7) to learn more about instrumentation points,
+events, recording event rules, and event records.
 
-LTTng offers various types of instrumentation; see the
-<<inst-point-type-cond,Instrumentation point type condition>> section
-below to learn about them.
-
-An _event rule_ is a set of conditions to match a set of events. A
-_recording event rule_ is a specific type of event rule of which the
-associated action is to serialize and record the matched event.
-
-When LTTng creates an event{nbsp}__E__, a recording event
-rule{nbsp}__ER__ is said to __match__{nbsp}__E__ when{nbsp}__E__
-satisfies *all* the conditions of{nbsp}__ER__. This concept is similar
-to a regular expression which matches a set of strings.
-
-When a recording event rule matches an event, LTTng _emits_ the event,
-therefore attempting to serialize and record it to one of the
-sub-buffers of its attached channel (see man:lttng-enable-channel(1) to
-learn more about LTTng channels).
-
-Without the option:--channel option, the `enable-event` command selects
-the channel named `channel0`. When the `enable-event` command creates a
-recording event rule, it automatically creates the `channel0` channel
-(for the specified tracing domain in the selected tracing session) if it
-doesn't exist.
-
-When multiple matching recording event rules are attached to the same
-channel, LTTng attempts to serialize and record the matched event
-_once_. In the following example, the second recording event
-rule is redundant when both are enabled:
-
-[role="term"]
-----
-$ lttng enable-event --userspace hello:world
-$ lttng enable-event --userspace hello:world --loglevel=TRACE_INFO
-----
+The recording event rule(s) to create or enable belong to:
 
-Without the option:--session option, the `enable-event` command selects
-the current tracing session (see man:lttng-create(1) and
-man:lttng-set-session(1) to learn more about the current tracing
-session).
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
-[NOTE]
-====
-The event creation and emission processes are documentation concepts to
-help understand the journey from an instrumentation point to the
-serialization and recording of an event.
-
-The actual creation of an event can be costly because LTTng needs to
-evalute the arguments of the instrumentation point.
-
-In practice, LTTng implements various optimizations for the Linux kernel
-and user space tracing domains (option:--kernel and option:--userspace
-options) to avoid actually creating an event when the tracer knows,
-thanks to properties which are independent from the event payload and
-current context, that it would never emit such an event. Those
-properties are:
-
-* The status of the rule itself (enabled or disabled).
-* The status of the channel (enabled or disabled; see
-  man:lttng-enable-channel(1) and man:lttng-disable-channel(1)).
-* The activity of the tracing session (started or stopped; see
-  man:lttng-start(1) and man:lttng-stop(1)).
-* The instrumentation point type (see the
-  <<inst-point-type-cond,Instrumentation point type>> section below).
-* The instrumentation point name (or event name)
-  (see the <<event-name-cond,Event name condition>> section below).
-* The instrumentation point log level (see the
-  <<inst-point-log-level-cond,Instrumentation point log level condition>>
-  section below).
-
-In other words: if, for a given instrumentation point{nbsp}__IP__, the
-LTTng tracer knows that it would never emit and record an event,
-executing{nbsp}__IP__ represents a simple boolean variable check and,
-for the kernel tracer, a few process attribute checks.
-====
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+With the option:--channel='CHANNEL' option::
+    The channel named 'CHANNEL'.
 
-List the existing recording event rules of a given tracing session
-and/or channel with the man:lttng-list(1) command.
+Without the option:--channel option::
+    The channel named `channel0`.
++
+If such a channel doesn't exist, the `enable-event` automatically
+creates it.
 
-Disable an existing, enabled recording event rule with the
+List the recording event rules of a specific tracing session
+and/or channel with the man:lttng-list(1) and man:lttng-status(1)
+commands.
+
+Disable an enabled recording event rule with the
 man:lttng-disable-event(1) command.
 
 
-Recording event rule overview
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Overview of recording event rule conditions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 For LTTng to emit and record an event{nbsp}__E__,{nbsp}__E__ must
 satisfy *all* the conditions of a recording event rule{nbsp}__ER__, that
 is:
@@ -183,15 +127,13 @@ Implicit conditions::
 +
 A recording event rule is enabled on creation.
 +
-Enable an existing, disabled recording event rule with the
-`enable-event` command.
+Enable a disabled recording event rule with the `enable-event` command.
 
 * The channel to which{nbsp}__ER__ is attached is enabled.
 +
 A channel is enabled on creation.
 +
-Enable an existing, disabled channel with the
-man:lttng-enable-channel(1) command.
+Enable a disabled channel with the man:lttng-enable-channel(1) command.
 
 * The tracing session of{nbsp}__ER__ is active (started).
 +
@@ -199,8 +141,8 @@ A tracing session is inactive (stopped) on creation.
 +
 Start an inactive tracing session with the man:lttng-start(1) command.
 
-* The process for which LTTng creates{nbsp}__E__ to match is allowed to
-  record events.
+* The process for which LTTng creates{nbsp}__E__ is allowed to record
+  events.
 +
 All processes are allowed to record events on tracing session
 creation.
@@ -608,8 +550,8 @@ Event record name
 ~~~~~~~~~~~~~~~~~
 When LTTng records an event{nbsp}__E__, the resulting event record has a
 name which depends on the instrumentation point type condition (see the
-<<inst-point-type-cond,Instrumentation point type condition>> section)
-of the recording event rule which matched{nbsp}__E__:
+<<inst-point-type-cond,Instrumentation point type condition>> section
+above) of the recording event rule which matched{nbsp}__E__:
 
 LTTng tracepoint (option:--kernel/option:--userspace and option:--tracepoint options)::
     Full name of the tracepoint from which LTTng creates{nbsp}__E__.
@@ -663,8 +605,8 @@ Linux kretprobe (option:--kernel and option:--function options)::
 [[enable]]
 Enable a disabled recording event rule
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The `enable-event` command can enable an existing, disabled recording
-event rule, as listed in the output of the man:lttng-list(1) command.
+The `enable-event` command can enable a disabled recording event rule,
+as listed in the output of the man:lttng-list(1) command.
 
 You may enable a disabled recording event rule regardless of the
 activity (started or stopped) of its tracing session (see
@@ -912,6 +854,7 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-disable-event(1),
 man:lttng-enable-channel(1),
 man:lttng-list(1),
index cd8de7309131468db42c44e0795de93cb14203b7..d8ec88e75e4f28469a0201e35ace732f5d73d732 100644 (file)
@@ -1,11 +1,11 @@
 lttng-enable-rotation(1)
 ========================
-:revdate: 21 April 2021
+:revdate: 3 May 2021
 
 
 NAME
 ----
-lttng-enable-rotation - Set a tracing session rotation schedule
+lttng-enable-rotation - Set an LTTng tracing session rotation schedule
 
 
 SYNOPSIS
@@ -24,12 +24,11 @@ With the option:--session='SESSION' option::
     The tracing session named 'SESSION'.
 
 Without the option:--session option::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-See man:lttng-rotate(1) for more information about the concepts of a
-tracing session _rotation_ and a _trace chunk_.
+See man:lttng-concepts(7) to learn more about the tracing session
+rotation and trace chunk concepts.
 
 With the option:--timer='PERIODUS' option, the `enable-rotation` command
 sets a rotation schedule so that LTTng performs an automatic rotation at
@@ -43,7 +42,7 @@ least 'SIZE'.
 For both the option:--timer and option:--size options, LTTng checks the
 schedule condition periodically using the monitor timers of the channels
 of the selected tracing session (see the nloption:--monitor-timer option
-of man:lttng-enable-channel(1)). This means that:
+of the man:lttng-enable-channel(1) command). This means that:
 
 * With the option:--timer='PERIODUS' option, LTTng can perform an
   automatic rotation when the elapsed time since the last automatic
@@ -58,26 +57,26 @@ relies on the precision of the platform implementation of POSIX timers.
 
 You may combine the option:--timer and option:--size options.
 
-The naming convention of a trace chunk archive which an automatic
-rotation operation creates is the same as with the immediate rotation
-command, man:lttng-rotate(1).
+See the man:lttng-concepts(7) to learn how LTTng names a trace chunk
+archive directory.
 
 Unset a tracing session rotation schedule with the
 man:lttng-disable-rotation(1) command.
 
 [IMPORTANT]
 ====
-The `enable-rotation` command only works when:
+You may only use the `enable-rotation` command when:
 
 * The selected tracing session was created in normal mode or in network
   streaming mode (see man:lttng-create(1)).
 
 * No channel was created with a configured trace file count or size
   limit (see the nloption:--tracefile-size and
-  nloption:--tracefile-count options of man:lttng-enable-channel(1)).
+  nloption:--tracefile-count options of the man:lttng-enable-channel(1)
+  command).
 
 For a given tracing session, LTTng only performs an automatic rotation
-when no other rotation is currently happening.
+when it's not currently performing a rotation.
 ====
 
 
@@ -95,8 +94,8 @@ The `k`{nbsp}(KiB), `M`{nbsp}(MiB), and `G`{nbsp}(GiB) suffixes are
 supported.
 
 option:--timer='PERIODUS'::
-    Set a rotation schedule so that LTTng performs an automatic rotation at
-    least every 'PERIODUS' microseconds.
+    Set a rotation schedule so that LTTng performs an automatic rotation
+    approximately every 'PERIODUS' microseconds.
 +
 The `ms`{nbsp}(milliseconds), `s`{nbsp}(seconds), `m`{nbsp}(minutes),
 and `h`{nbsp}(hours) suffixes are supported.
@@ -118,6 +117,7 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
 man:lttng-disable-rotation(1),
 man:lttng-rotate(1)
index b28d23aae4acb97aaac6768e11e4748dbaf43532..3fad65c86d1da8bd7b906e28ab7221bc680f5804 100644 (file)
@@ -1,6 +1,6 @@
 lttng-event-rule(7)
 ===================
-:revdate: 19 April 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -14,26 +14,26 @@ Specify an event rule to match Linux kernel tracepoint or system call
 events:
 
 [verse]
-option:--domain=kernel option:--type=(tracepoint | syscall[:entry|:exit|:entry+exit])]
+option:--domain=**kernel** option:--type=(**tracepoint** | **syscall**[**:entry**|**:exit**|**pass:[:entry+exit]**])]
 pass:[[]option:--name='NAME'] [option:--filter='EXPR']
 
 Specify an event rule to match Linux kernel kprobe or user space
 probe events:
 
 [verse]
-option:--domain=kernel option:--type=(kprobe | uprobe) option:--location='LOC'
+option:--domain=**kernel** option:--type=(**kprobe** | **uprobe**) option:--location='LOC'
 pass:[[]option:--event-name='EVENTNAME'] [option:--filter='EXPR']
 
 Specify an event rule to match user space tracepoint events:
 
 [verse]
-option:--domain=user [option:--type=tracepoint] [option:--name='NAME'] [option:--exclude-name='XNAME']...
+option:--domain=**user** [option:--type=**tracepoint**] [option:--name='NAME'] [option:--exclude-name='XNAME']...
 pass:[[]option:--log-level=('LOGLEVEL' | 'LOGLEVEL'.. | ..)] [option:--filter='EXPR']
 
 Specify an event rule to match Java/Python logging events:
 
 [verse]
-option:--domain=(jul | log4j | python) [option:--type=logging] [option:--name='NAME']
+option:--domain=(**jul** | **log4j** | **python**) [option:--type=**logging**] [option:--name='NAME']
 pass:[[]option:--log-level=('LOGLEVEL' | 'LOGLEVEL'.. | ..)] [option:--filter='EXPR']
 
 
@@ -46,6 +46,9 @@ As of LTTng{nbsp}{lttng_version}, the command-line options documented
 here only apply to the `event-rule-matches` trigger condition specifier
 (see man:lttng-add-trigger(1)).
 
+See man:lttng-concepts(7) to learn more about instrumentation points,
+events, and event rules.
+
 [NOTE]
 ====
 This manual page only describes the common event rule options. The
@@ -58,57 +61,8 @@ condition.
 ====
 
 
-Core concepts
-~~~~~~~~~~~~~
-An _instrumentation point_ is a point, within a piece of software,
-which, when executed, creates an LTTng _event_.
-
-LTTng offers various types of instrumentation; see the
-<<inst-point-type-cond,Instrumentation point type condition>> section
-below to learn about them.
-
-An _event rule_ is a set of conditions to match a set of events.
-
-When LTTng creates an event{nbsp}__E__, a event rule{nbsp}__ER__ is said
-to __match__{nbsp}__E__ when{nbsp}__E__ satisfies *all* the conditions
-of{nbsp}__ER__. This concept is similar to a regular expression which
-matches a set of strings.
-
-When an event rule matches an event, LTTng _emits_ the event,
-therefore attempting to execute one or more actions.
-
-[NOTE]
-====
-The event creation and emission processes are documentation concepts to
-help understand the journey from an instrumentation point to the
-execution of actions.
-
-The actual creation of an event can be costly because LTTng needs to
-evalute the arguments of the instrumentation point.
-
-In practice, LTTng implements various optimizations for the Linux kernel
-and user space tracing domains (option:--domain=++kernel++ and
-option:--domain=++user++ options) to avoid actually creating an event
-when the tracer knows, thanks to properties which are independent from
-the event payload and current context, that it would never emit such an
-event. Those properties are:
-
-* The instrumentation point type (see the
-  <<inst-point-type-cond,Instrumentation point type>> section below).
-* The instrumentation point name (or event name)
-  (see the <<event-name-cond,Event name condition>> section below).
-* The instrumentation point log level (see the
-  <<inst-point-log-level-cond,Instrumentation point log level condition>>
-  section below).
-
-In other words: if, for a given instrumentation point{nbsp}__IP__, the
-LTTng tracer knows that it would never emit an event,
-executing{nbsp}__IP__ represents a simple boolean variable check.
-====
-
-
-Event rule overview
-~~~~~~~~~~~~~~~~~~~
+Overview of event rule condtions
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 For LTTng to emit an event{nbsp}__E__,{nbsp}__E__ must satisfy *all* the
 conditions of an event rule, that is:
 
@@ -802,7 +756,12 @@ option:-f 'EXPR', option:--filter='EXPR'::
     event payload and current context fields, is _true_.
 
 
+include::common-footer.txt[]
+
+
 SEE ALSO
 --------
 man:lttng(1),
-man:lttng-add-trigger(1)
+man:lttng-add-trigger(1),
+man:lttng-concepts(7),
+man:lttng-list(1)
index 1de72c55b24628ebf6018e890c742ab847066a14..3b1d7b50e91d2b464dceedf50d422ebfc248d439 100644 (file)
@@ -27,7 +27,7 @@ Without the 'COMMAND' argument::
 The `help` command is equivalent to:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] ['COMMAND'] --help
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] ['COMMAND'] nloption:--help
 
 The `help` command attempts to launch `/usr/bin/man` to view this the
 manual page of the command. Override the manual pager path with the
index f6308141dc6d709d8ba403718f219b2a780b4b0c..83919a2c69ba3061a3c885a2546011b4bb04ce19 100644 (file)
@@ -1,6 +1,6 @@
 lttng-list-triggers(1)
 ======================
-:revdate: 3 March 2021
+:revdate: 3 May 2021
 
 
 NAME
@@ -16,10 +16,11 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-The `lttng list-triggers` command lists the available LTTng triggers
-of your Unix user and their properties.
+The `lttng list-triggers` command lists the available LTTng triggers of
+your Unix user, or of all users if your Unix user is `root`, and their
+properties.
 
-See man:lttng-add-trigger(1) to learn more about triggers.
+See man:lttng-concepts(7) to learn more about triggers.
 
 
 OPTIONS
@@ -31,6 +32,7 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
+man:lttng(1),
 man:lttng-add-trigger(1),
-man:lttng-remove-trigger(1),
-man:lttng(1)
+man:lttng-concepts(7),
+man:lttng-remove-trigger(1)
index af3b13f7189af9aa692c77e1addf3f296a6b3683..319ec50524887b7f73ac96792609dab78630e823 100644 (file)
 lttng-list(1)
 =============
-:revdate: 28 November 2016
+:revdate: 3 May 2021
 
 
 NAME
 ----
-lttng-list - List LTTng tracing sessions, domains, channels, and events
+lttng-list - List LTTng tracing sessions and instrumentation points
 
 
 SYNOPSIS
 --------
-List existing tracing sessions:
+List the tracing sessions:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list*
 
-List available event sources:
+List the tracing domains with at least one channel of a tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* [option:--fields]
-      [option:--kernel [option:--syscall]] [option:--userspace] [option:--jul] [option:--log4j] [option:--python]
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* option:--domain 'SESSION'
 
-List tracing session's domains:
+List the channels and recording event rules of a tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* option:--domain 'SESSION'
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* [option:--channel='CHANNEL'] 'SESSION'
+      [option:--kernel] [option:--userspace] [option:--jul] [option:--log4j] [option:--python]
 
-List tracing session's channels and recording event rules:
+List the available LTTng tracepoints, Linux system calls, and/or
+Java/Python loggers:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* [option:--channel='CHANNEL'] 'SESSION'
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *list* [option:--fields]
+      [option:--kernel [option:--syscall]] [option:--userspace] [option:--jul] [option:--log4j] [option:--python]
 
 
 DESCRIPTION
 -----------
-The `lttng list` command lists tracing sessions, tracing domains,
-channels, and events.
-
-Without arguments, `lttng list` lists the existing tracing sessions
-and shows if they are active or not.
-
-With one or more of the option:--kernel, option:--userspace,
-option:--jul, option:--log4j, and option:--python domain options, the
-command lists the available event sources of the selected domain on the
-system. The JUL, log4j, and Python domains list the names of their
-available _loggers_. The option:--syscall option can be used alongside
-the option:--kernel option to get a list of traceable Linux system
-calls. The option:--fields option can be used to show the fields of the
-listed event sources.
-
-Providing a tracing session name 'SESSION' targets a specific tracing
-session. If the option:--domain option is used, domains containing at
-least one channel in the selected tracing session are listed. Otherwise,
-all the domains, channels, and recording event rules of the selected
-tracing session are listed along with its details (trace path, for
-example), except when the option:--channel option is used to isolate a
-specific channel by name.
+The `lttng list` command lists:
+
+Without arguments::
+    The tracing sessions of your Unix user, or of all users
+    if your Unix user is `root`, within the connected session daemon.
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
++
+The command shows tracing session properties such as their output
+directories/URLs and whether or not they're active.
+
+With the 'SESSION' argument::
+    With the option:--domain option:::
+        The tracing domains (with at least one channel) of the tracing
+        session named 'SESSION'.
+
+    Without the option:--domain option:::
+        With the option:--channel='CHANNEL' option::::
+            The recording event rules of the channel 'CHANNEL' of the
+            tracing session named 'SESSION'.
+
+        Without the option:--channel option::::
+            The channels of the tracing session named 'SESSION' and
+            their recording event rules.
++
+Use the dedicated tracing domain options (option:--kernel,
+option:--userspace, option:--jul, option:--log4j, and option:--python)
+to only show specific channels.
+
+Without the 'SESSION' argument and with at least one dedicated tracing domain option::
++
+--
+With the option:--kernel option::
+    Without the option:--syscall option:::
+        The available LTTng kernel tracepoints.
+    With the option:--syscall option:::
+        The available, instrumented Linux system calls.
+With the option:--userspace option::
+    The available LTTng user space tracepoints.
+With the option:--jul, option:--log4j, and/or option:--python options::
+    The available `java.util.logging`, Apache log4j, and/or Python
+    logger names.
+--
++
+Also list the available instrumentation point fields with the
+option:--fields option.
+
+See man:lttng-concept(7) to learn more about tracing sessions, tracing
+domains, channels, recording event rules, and instrumentation points.
+
+List the channels and recording event rules of the current tracing
+session (see man:lttng-concept(7) to learn more) with the
+man:lttng-status(1) command.
 
 
 include::common-cmd-options-head.txt[]
 
 
-Domain
-~~~~~~
+Tracing domain
+~~~~~~~~~~~~~~
 option:-j, option:--jul::
-    List event sources in the `java.util.logging` (JUL) domain.
+    Without the 'SESSION' argument:::
+        List the `java.util.logging` logger names.
+    With the 'SESSION' argument:::
+        Only list the `java.util.logging` channels and their recording
+        event rules.
 
 option:-k, option:--kernel::
-    List event sources in the Linux kernel domain.
+    Without the 'SESSION' argument:::
+        List the LTTng kernel instrumentation points.
+    With the 'SESSION' argument:::
+        Only list the Linux kernel channels and their recording event
+        rules.
 
 option:-l, option:--log4j::
-    List event sources in the Apache log4j domain.
+    Without the 'SESSION' argument:::
+        List the Apache log4j logger names.
+    With the 'SESSION' argument:::
+        Only list the Apache log4j channels and their recording event
+        rules.
 
 option:-p, option:--python::
-    List event sources in the Python domain.
+    Without the 'SESSION' argument:::
+        List the Python logger names.
+    With the 'SESSION' argument:::
+        Only list the Python channels and their recording event rules.
 
 option:-u, option:--userspace::
-    List event sources in the user space domain.
+    Without the 'SESSION' argument:::
+        List the LTTng user space tracepoints.
+    With the 'SESSION' argument:::
+        Only list the user space channels and their recording event
+        rules.
 
 
-Target
-~~~~~~
+Filtering
+~~~~~~~~~
 option:-c 'CHANNEL', option:--channel='CHANNEL'::
-    Only list the details of the channel named 'CHANNEL'.
-
+    Only list the properties and recording event rules of the channel
+    named 'CHANNEL'.
++
+Only available with the 'SESSION' argument.
 
-Listing
-~~~~~~~
 option:-d, option:--domain::
-    Show the domains of the target tracing session in which at least one
-    channel exists.
+    Show the tracing domains with at least one channel of the tracing
+    session named 'SESSION'.
 
 option:-f, option:--fields::
-    When listing the event sources with one of the domain options,
-    also show their fields.
+    When listing instrumentation points, also show their fields if
+    they're available.
 
 option:--syscall::
-    When listing the event sources of the Linux kernel domain, list
-    the traceable system calls instead of the kernel tracepoints.
+    When listing LTTng kernel instrumentation points, only list Linux
+    system calls.
 
 
 include::common-cmd-help-options.txt[]
@@ -108,4 +161,5 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7)
index 253b86d3ccdc605e23dc80d9084dc44a824d6401..f5cc3e203c116ed6fb29cb751d5c58151913ceec 100644 (file)
@@ -1,6 +1,6 @@
 lttng-load(1)
 =============
-:revdate: 28 November 2016
+:revdate: 30 April 2021
 
 
 NAME
@@ -12,7 +12,7 @@ SYNOPSIS
 --------
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *load* [option:--force] [option:--input-path='PATH']
-      [option:--override-url='URL'] ['SESSION' [option:--override-name='NAME']]
+      [option:--override-url='URL'] [option:--all | 'SESSION' [option:--override-name='NAME']]
 
 
 DESCRIPTION
@@ -20,54 +20,63 @@ DESCRIPTION
 The `lttng load` command loads the configurations of one or more
 tracing sessions from files.
 
-The `lttng load` command is used in conjunction with the
-man:lttng-save(1) command to save and restore the complete
-configurations of tracing sessions. This includes the enabled channels
-and recording event rules, the context added to channels, the tracing
+See man:lttng-concepts(7) to learn more about tracing sessions.
+
+Use the `load` command in conjunction with the man:lttng-save(1) command
+to save and restore the complete configurations of tracing sessions. A
+tracing session configuration includes the enabled channels and
+recording event rules, the context fields to be recorded, the tracing
 activity, and more.
 
-Once one or more tracing session configurations are loaded, they appear
+Once LTTng loads one or more tracing session configurations, they appear
 exactly as they were saved from the user's point of view.
 
-The following directories are searched, non-recursively, in this order
-for configuration files:
+LTTng searches the following directories, non-recursively, in this order
+for tracing session configuration files:
 
 . `$LTTNG_HOME/.lttng/sessions` (`$LTTNG_HOME` defaults to `$HOME`)
 . +{system_sessions_dir}+
 
-The input path can be overridden with the option:--input-path option.
-When this option is specified, the default directories are :not:
-searched for configuration files. When it's not specified, _both_
-default directories are searched for configuration files.
+Override the input path with the option:--input-path='PATH' option. With
+this option, LTTng does :not: search the default directories above.
+'PATH' can be the path of one of:
+
+A directory::
+    With the 'SESSION' argument:::
+        LTTng searches for the tracing session configuration named
+        'SESSION' in all the files of the directory 'PATH' and loads it
+        if found.
 
-If the input path is a *directory*, then:
+    Without the 'SESSION' argument:::
+        The option:--all option is implicit: LTTng loads all the tracing
+        session configurations found in all the files in the directory
+        'PATH'.
 
-* If 'SESSION' is specified, the tracing session configuration named
-  'SESSION' is searched for in all the files of this directory and
-  loaded if found.
-* If 'SESSION' is not specified, the option:--all option is implicit:
-  all the tracing session configurations found in all the files in this
-  directory are loaded.
+A file::
+    With the 'SESSION' argument:::
+        LTTng searches for the tracing session configuration named
+        'SESSION' in the file 'PATH' and loads it if found.
 
-If the input path is a *file*, then:
+    Without the 'SESSION' argument:::
+        The option:--all option is implicit: LTTng loads all the tracing
+        session configurations found in the file 'PATH'.
 
-* If 'SESSION' is specified, the tracing session configuration named
-  'SESSION' is searched for in this file and loaded if found.
-* If 'SESSION' is not specified, the option:--all option is implicit:
-  all the tracing session configurations found in this file are loaded.
+Override the output URL of the loaded tracing session configurations
+with the option:--override-url option.
 
-Aspects of the loaded configurations can be overridden at load time
-using the option:--override-url and option:--override-name options.
+With the 'SESSION' argument, override the name of the loaded tracing
+session configuration with the option:--override-name option.
 
-By default, existing tracing sessions are not overwritten when loading:
-the command fails. The option:--force option can be used to allow this.
+By default, the `load` command does :not: overwrite existing tracing
+sessions: the command fails. Allow the `load` command to overwrite
+existing tracing sessions with the option:--force option.
 
 
 include::common-cmd-options-head.txt[]
 
 
 option:-a, option:--all::
-    Load all tracing session configurations (default).
+    Load all the tracing session configurations (default).
 
 option:-f, option:--force::
     Overwrite existing tracing sessions when loading.
@@ -80,12 +89,9 @@ option:-i 'PATH', option:--input-path='PATH'::
 option:--override-name='NAME'::
     Override the name of the loaded tracing session configuration,
     'SESSION', with 'NAME'.
-+
-You must specify a tracing session name to load ('SESSION') and :not:
-use the option:--all option when using this option.
 
 option:--override-url='URL'::
-    Override the URL of the loaded tracing session configurations
+    Override the output URL of the loaded tracing session configurations
     with 'URL'.
 +
 This is the equivalent of the nloption:--set-url option of
@@ -102,5 +108,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng-save(1),
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-save(1)
index 5d9864be7c9842a98e47c01279c5021eaddb0fc0..220225b31be8b8ae07dc8194340bdba013e33a31 100644 (file)
@@ -1,22 +1,22 @@
 lttng-metadata(1)
 =================
-:revdate: 28 November 2016
+:revdate: 30 April 2021
 
 
 NAME
 ----
-lttng-metadata - Manage an LTTng tracing session's metadata generation
+lttng-metadata - Manage the metadata generation of an LTTng tracing session
 
 
 SYNOPSIS
 --------
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *metadata regenerate* [option:--session='SESSION']
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *metadata* *regenerate* [option:--session='SESSION']
 
 
 DESCRIPTION
 -----------
-WARNING: This command is **deprecated**; it has been replaced by
+WARNING: This command is **deprecated**; it's been replaced with
 `lttng regenerate metadata` (see man:lttng-regenerate(1)).
 
 
@@ -24,27 +24,20 @@ include::common-cmd-options-head.txt[]
 
 
 option:-s 'SESSION', option:--session='SESSION'::
-    Manage the metadata generation of the tracing session named 'SESSION'
-    instead of the current tracing session.
+    Manage the metadata generation of the tracing session named
+    'SESSION' instead of the current tracing session (see
+    man:lttng-concepts(7) to learn more about the current tracing
+    session).
 
 
 include::common-cmd-help-options.txt[]
 
 
-LIMITATIONS
------------
-The `lttng metadata regenerate` command can only be used on kernel and
-user space tracing sessions (using per-user buffering), in non-live
-mode.
-
-See man:lttng-enable-channel(1) for more information about
-buffering schemes and man:lttng-create(1) for more information
-about the different tracing session modes.
-
-
 include::common-cmd-footer.txt[]
 
 
 SEE ALSO
 --------
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-regenerate(1)
index a220551884e192e477e2c588f87164efe1e585b5..d3f645fc6d9e381066679a9723767a491d0e3e67 100644 (file)
@@ -1,56 +1,87 @@
 lttng-regenerate(1)
 ===================
-:revdate: 18 January 2018
+:revdate: 30 April 2021
 
 
 NAME
 ----
-lttng-regenerate - Manage an LTTng tracing session's data regeneration
+lttng-regenerate - Regenerate specific data of an LTTng tracing session
 
 
 SYNOPSIS
 --------
-Regenerate the metadata of a session:
+Regenerate the metadata of a tracing session:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *regenerate metadata* [option:--session='SESSION']
 
-Regenerate the state dump of a session:
+Regenerate the state dump event records of a tracing session:
 
 [verse]
 *lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *regenerate statedump* [option:--session='SESSION']
 
+
 DESCRIPTION
 -----------
-The `lttng regenerate` command regenerates specific data of a tracing session.
-
-As of this version, the `metadata` and `statedump` actions are
-available.
+The `lttng regenerate` command regenerates specific data of:
 
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
-Regenerating a tracing session's metadata
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The `lttng regenerate metadata` action can be used to resample the offset
-between the system's monotonic clock and the wall-clock time.
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-This action is meant to be used to resample the wall-clock time following a
-major link:https://en.wikipedia.org/wiki/Network_Time_Protocol[NTP] correction.
-As such, a system booting with an incorrect wall time can be traced before its
-wall time is NTP-corrected. Regenerating the tracing session's metadata ensures
-that trace viewers can accurately determine the events time relative to Unix
-Epoch.
+See man:lttng-concepts(7) to learn more about tracing sessions.
 
-If you use man:lttng-rotate(1) or man:lttng-enable-rotation(1) to make
-tracing session rotations, this action regenerates the current and
-next trace chunks's metadata files.
+As of this version, the `metadata` and `statedump` targets are
+available.
 
 
-Regenerating a tracing session's state dump
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The `lttng regenerate statedump` action can be used to collect up-to-date state
-dump information during the tracing session. This is particularly useful in
-snapshot (see man:lttng-snapshot(1)) or trace file rotation (see
-man:lttng-enable-channel(1)) modes where the state dump information may be
+Regenerate the metadata of a tracing session
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Use the `metadata` target to resample the offset between the monotonic
+clock and the wall time of the system, and then regenerate the metadata
+stream files.
+
+More specifically, you may want to resample the wall time
+following a major
+link:https://en.wikipedia.org/wiki/Network_Time_Protocol[NTP]
+correction. As such, LTTng can trace a system booting with an incorrect
+wall time before its wall time is NTP-corrected. Regenerating the
+metadata of the selected tracing session ensures that trace readers can
+accurately determine the event record timestamps relative to the
+Unix epoch.
+
+Note that if you plan to rotate (see man:lttng-concepts(7) to learn
+more) the selected tracing session, this target only regenerates the
+metadata stream files of the current and next trace chunks.
+
+[IMPORTANT]
+====
+You can only use the `metadata` target when the selected
+tracing session:
+
+* Is not in live mode (nloption:--live option of
+  man:lttng-create(1)).
+
+* If it has user space channels, they're configured to use a
+  per-user buffering scheme (nloption:--buffers-uid option of
+  man:lttng-enable-channel(1)).
++
+See man:lttng-concepts(7) to learn more about channels.
+====
+
+
+Regenerate the state dump event records of a tracing session
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Use the `statedump` target to collect up-to-date state dump information
+and create corresponding event records.
+
+This is particularly useful if the selected tracing session is in
+snapshot mode (nloption:--snapshot option of the man:lttng-create(1)
+command) or if LTTng rotates trace files for one of its channels (see
+man:lttng-concepts(7)): in both cases, the state dump information may be
 lost.
 
 
@@ -58,27 +89,17 @@ include::common-cmd-options-head.txt[]
 
 
 option:-s 'SESSION', option:--session='SESSION'::
-    Regenerate the data of the tracing session named 'SESSION'
+    Regenerate specific data of the tracing session named 'SESSION'
     instead of the current tracing session.
 
 
 include::common-cmd-help-options.txt[]
 
 
-LIMITATIONS
------------
-The `lttng regenerate metadata` command can only be used on kernel and
-user space tracing sessions (using per-user buffering), in non-live
-mode.
-
-See man:lttng-enable-channel(1) for more information about
-buffering schemes and man:lttng-create(1) for more information
-about the different tracing session modes.
-
-
 include::common-cmd-footer.txt[]
 
 
 SEE ALSO
 --------
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7)
index 5171b93d9c05999bbe8280c1d4d5c1f420f53bf6..694eb49955852411ad650ef6c0cd30213a5d2a57 100644 (file)
@@ -1,11 +1,13 @@
 lttng-relayd(8)
 ===============
-:revdate: 2 April 2020
+:revdate: 30 April 2021
+:daemon-bin-name: lttng-relayd
+:daemon-ini-section: relayd
 
 
 NAME
 ----
-lttng-relayd - LTTng relay daemon
+lttng-relayd - LTTng relay daemon
 
 
 SYNOPSIS
@@ -13,39 +15,52 @@ SYNOPSIS
 [verse]
 *lttng-relayd* [option:--background | option:--daemonize] [option:--config='PATH']
              [option:--control-port='URL'] [option:--data-port='URL'] [option:--fd-pool-size='COUNT']
-             [option:--live-port='URL'] [option:--output='PATH']
-             [option:-v | option:-vv | option:-vvv] [option:--working-directory='PATH']
-             [option:--group-output-by-session] [option:--disallow-clear]
+             [option:--live-port='URL'] [option:--output='DIR'] [option:--group='GROUP']
+             [option:--verbose]... [option:--working-directory='DIR']
+             [option:--group-output-by-host | option:--group-output-by-session] [option:--disallow-clear]
 
 
 DESCRIPTION
 -----------
-The https://lttng.org/[_Linux Trace Toolkit: next generation_] is an open
-source software package used for correlated tracing of the Linux kernel,
-user applications, and user libraries.
+include::common-intro.txt[]
 
-LTTng consists of Linux kernel modules (for Linux kernel tracing) and
-dynamically loaded libraries (for user application and library tracing).
+An LTTng relay daemon, `lttng-relayd`, is a program which receives trace
+data from (possibly remote) LTTng session/consumer daemons and which
+writes it to the local file system. The relay daemon also accepts LTTng
+live connections from compatible readers (for example,
+man:babeltrace2(1)); this is the recommended approach to read trace data
+while the remote tracing session is active.
 
-The _LTTng relay daemon_ is responsible for receiving trace data from
-possibly remote LTTng session/consumer daemons and for writing it to
-the local file system. The relay daemon also accepts _LTTng live_
-connections from compatible viewers; this is the official approach to
-viewing LTTng events as they are emitted.
+By default, a relay daemon listens on all network interfaces to receive
+trace data, but only on `localhost` for LTTng live connections. Override
+the listening URLs with the option:--control-port, option:--data-port,
+and option:--live-port options (see the <<url-format,URL format>>
+section below). For example, use the
+option:--live-port=+tcp://0.0.0.0:{default_network_viewer_port}+ option
+to make a relay daemon listen to LTTng live connections on all network
+interfaces.
 
-The relay daemon listens by default on all network interfaces to gather
-trace data, but only on localhost for LTTng live connections.
+Once LTTng has completely sent a trace to a relay daemon{nbsp}__RD__,
+any LTTng trace reader can read the trace located on the local file
+system of{nbsp}__RD__.
 
-The relay daemon does not require any particular permissions, as long as
-it can write to the output directory and listen on the configured ports.
-If a user is within a secured network and/or has proper firewall
-settings, `lttng-relayd` can listen to LTTng live connections from _all_
-network interfaces by specifying
-+--live-port=tcp://0.0.0.0:{default_network_viewer_port}+.
+By default, `lttng-relayd` doesn't start as a daemon. Make it a daemon
+with the option:--daemonize or option:--background option. With those
+options, `lttng-relayd` ensures the daemon is listening to incoming
+connections before it exits.
 
-Once a trace has been streamed completely, the trace can be processed by
-any tool that can process an LTTng trace located on the local
-file system.
+
+include::common-daemon-cfg.txt[]
+
+INI configuration file example:
+
+[source,ini]
+----
+[relayd]
+daemonize=yes
+live-port=tcp://0.0.0.0:4567
+disallow-clear=yes
+----
 
 
 [[output-directory]]
@@ -54,20 +69,21 @@ Output directory
 The relay daemon uses different output path patterns depending on:
 
 * Its configuration.
-* The connected peer's tracing session configuration.
-* The connected peer's LTTng session daemon (see man:lttng-sessiond(8))
-  version.
++
+See the <<cfg,Daemon configuration>> section above.
+
+* The tracing session configuration of the connected peer.
+* The LTTng session daemon (see man:lttng-sessiond(8)) version
+  of the connected peer.
 
 Consider the following variables:
 
 'BASE'::
-    Base output directory: `$LTTNG_HOME/lttng-traces` or the
-    argument of the option:--output option.
-+
-NOTE: `$LTTNG_HOME` defaults to `$HOME`.
+    Base output directory: `$LTTNG_HOME/lttng-traces` (`$LTTNG_HOME`
+    defaults to `$HOME`) or the argument of the option:--output option.
 
 'HOSTNAME'::
-    Peer's hostname.
+    Hostname of the connected peer.
 
 'SESSION'::
     Tracing session name.
@@ -75,68 +91,61 @@ NOTE: `$LTTNG_HOME` defaults to `$HOME`.
 'DATETIME'::
     Unique tracing session date/time.
 
-'TRACEPATH'::
-    Custom trace path ('TRACEPATH' part of the man:lttng-create(1)
-    command's nloption:--set-url option's argument, if any).
+'TRACEDIR'::
+    Custom trace directory path ('TRACEDIR' part of the argument of the
+    nloption:--set-url option of the man:lttng-create(1) command, if
+    any).
+
+'SESSIONDV'::
+    The version of the LTTng session daemon of the connected peer.
 
 The relay daemon output path patterns are:
 
-Hostname grouping (without option:--group-output-by-session)::
-    Without a custom trace path:::
+With the option:--group-output-by-host option (hostname grouping)::
+    Without a custom trace directory:::
 +
---
 [verse]
 'BASE'/'HOSTNAME'/'SESSION'-'DATETIME'
---
 
-With a custom trace path:::
+With a custom trace directory:::
 +
---
 [verse]
-'BASE'/'HOSTNAME'/'TRACEPATH'
---
+'BASE'/'HOSTNAME'/'TRACEDIR'
 
-Tracing session grouping (with option:--group-output-by-session)::
-    Without a custom trace path:::
-        The peer's LTTng session daemon version is at least 2.4::::
+With the option:--group-output-by-session option (tracing session grouping)::
+    Without a custom trace directory:::
+        'SESSIONDV' is at least{nbsp}2.4::::
 +
---
 [verse]
 'BASE'/'SESSION'/'HOSTNAME'-'DATETIME'
---
 
 Otherwise::::
     Defaults to the hostname grouping pattern:
 +
---
 [verse]
 'BASE'/'HOSTNAME'/'SESSION'-'DATETIME'
---
 
-With a custom trace path:::
-    The peer's LTTng session daemon version is at least 2.4::::
+With a custom trace directory:::
+    'SESSIONDV' is at least 2.4::::
 +
---
 [verse]
-'BASE'/'SESSION'/'HOSTNAME'-'DATETIME'/'TRACEPATH'
---
+'BASE'/'SESSION'/'HOSTNAME'-'DATETIME'/'TRACEDIR'
 
 Otherwise::::
     Defaults to the hostname grouping pattern:
 +
---
 [verse]
-'BASE'/'HOSTNAME'/'TRACEPATH'
---
+'BASE'/'HOSTNAME'/'TRACEDIR'
 
 
 [[url-format]]
 URL format
 ~~~~~~~~~~
-The option:--control-port, option:--data-port, and option:--live-port
-options specify URLs.
+The argument of the option:--control-port='URL',
+option:--data-port='URL', and option:--live-port='URL' options is an
+URL.
 
-The format of those URLs is:
+The format of 'URL' is:
 
 [verse]
 tcp://('HOST' | 'IPADDR'):__PORT__
@@ -144,30 +153,43 @@ tcp://('HOST' | 'IPADDR'):__PORT__
 with:
 
 ('HOST' | 'IPADDR')::
-    Binding hostname or IP address (IPv6 address *must* be enclosed in
-    brackets (`[` and `]`); see
-    https://www.ietf.org/rfc/rfc2732.txt[RFC 2732]).
+    Binding hostname or IP address.
++
+IPv6 address must be enclosed in square brackets (`[` and{nbsp}`]`);
+see https://www.ietf.org/rfc/rfc2732.txt[RFC{nbsp}2732].
 
 'PORT'::
     TCP port.
 
 
+[[options]]
 OPTIONS
 -------
-Daemon
-~~~~~~
+General daemon configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 option:-b, option:--background::
-    Start as Unix daemon, but keep file descriptors (console) open.
-    Use the option:--daemonize option instead to close the file
-    descriptors.
+    Start as a Unix daemon, but keep file descriptors (console) open.
++
+With this option, `lttng-relayd` ensures the daemon is listening
+to incoming connections before it exits.
++
+Use the option:--daemonize option instead to close the file descriptors.
 
 option:-f 'PATH', option:--config='PATH'::
-    Load relay daemon configuration from path 'PATH'.
+    Configure the daemon using the INI configuration file 'PATH' in
+    addition to the default configuration files and the command-line
+    options.
++
+See the <<cfg,Daemon configuration>> section above.
 
 option:-d, option:--daemonize::
-    Start as Unix daemon, and close file descriptors (console). Use the
-    option:--background option instead to keep the file descriptors
-    open.
+    Start as a Unix daemon and close file descriptors (console).
++
+With this option, `lttng-relayd` ensures the daemon is listening
+to incoming connections before it exits.
++
+Use the option:--background option instead to keep the file descriptors
+open.
 
 option:-x, option:--disallow-clear::
     Disallow clearing operations (see man:lttng-clear(1)).
@@ -175,161 +197,183 @@ option:-x, option:--disallow-clear::
 See also the `LTTNG_RELAYD_DISALLOW_CLEAR` environment variable.
 
 option:--fd-pool-size='SIZE'::
-    Set the size of the file descriptor pool to 'SIZE'.
+    Set the size of the file descriptor pool to 'SIZE' file descriptors.
 +
-'SIZE' is the maximum number of file descriptors that may be kept opened
-simultaneously by the relay daemon.
+'SIZE' is the maximum number of file descriptors that the relay daemon
+may keep open simultaneously.
 +
 Default: the soft `RLIMIT_NOFILE` resource limit of the process (see
 man:getrlimit(2)).
 
 option:-g 'GROUP', option:--group='GROUP'::
-    Use 'GROUP' as Unix tracing group (default: `tracing`).
+    Set the Unix tracing group to 'GROUP' instead of `tracing`.
++
+This option is only meaningful when the `root` Unix user starts
+`lttng-relayd`.
++
+Members of the Unix tracing group may connect to the health check socket
+of the relay daemon.
++
+See also the `LTTNG_RELAYD_HEALTH` environment variable.
 
-option:-w 'PATH', option:--working-directory='PATH'::
+option:-w 'DIR', option:--working-directory='DIR'::
     Set the working directory of the processes the relay daemon creates
-    to 'PATH'.
+    to 'DIR'.
 +
 See also the `LTTNG_RELAYD_WORKING_DIRECTORY` environment variable.
 
 option:-v, option:--verbose::
     Increase verbosity.
 +
-Three levels of verbosity are available, which are triggered by
-appending additional `v` letters to the option
-(that is, `-vv` and `-vvv`).
+Specify this option up to three times to get more levels of verbosity.
 
 
 Output
 ~~~~~~
-See the <<output-directory,Output directory>> section above for more
-information.
+See the <<output-directory,Output directory>> section above to learn
+more.
 
 option:-p, option:--group-output-by-host::
-    Group the written trace directories by hostname (default).
+    Group the written trace directories by hostname.
++
+As of LTTng{nbsp}{lttng_version}, this is the default output grouping
+strategy, but this may change in the future.
 
 option:-s, option:--group-output-by-session::
     Group the written trace directories by tracing session name instead
     of by hostname.
 
-option:-o 'PATH', option:--output='PATH'::
+option:-o 'DIR', option:--output='DIR'::
     Set the base output directory of the written trace directories to
-    'PATH'.
+    'DIR'.
 
 
 Ports
 ~~~~~
-See the <<url-format,URL format>> section above for more information
-about the syntax of the following 'URL' argument.
+See the <<url-format,URL format>> section above to learn more about the
+syntax of the 'URL' argument of the following options.
 
 option:-C 'URL', option:--control-port='URL'::
-    Listen to control data on URL 'URL' (default:
-    +tcp://{default_network_control_bind_address}:{default_network_control_port}+).
+    Listen to control data on URL 'URL'.
++
+Default:
++tcp://{default_network_control_bind_address}:{default_network_control_port}+.
 
 option:-D 'URL', option:--data-port='URL'::
-    Listen to trace data on URL 'URL' (default:
-    +tcp://{default_network_data_bind_address}:{default_network_data_port}+).
+    Listen to trace data on URL 'URL'.
++
+Default:
++tcp://{default_network_data_bind_address}:{default_network_data_port}+.
 
 option:-L 'URL', option:--live-port='URL'::
-    Listen to LTTng live connections on URL 'URL'
-    (default:
-    +tcp://{default_network_viewer_bind_address}:{default_network_viewer_port}+).
+    Listen to LTTng live connections on URL 'URL'.
++
+Default:
++tcp://{default_network_viewer_bind_address}:{default_network_viewer_port}+.
 
 
 Program information
 ~~~~~~~~~~~~~~~~~~~
-option:-h, option:--help::
-    Show help.
+include::common-help-option.txt[]
 
 option:-V, option:--version::
-    Show version.
+    Show version and quit.
 
 
 ENVIRONMENT VARIABLES
 ---------------------
 `LTTNG_ABORT_ON_ERROR`::
-    Set to 1 to abort the process after the first error is encountered.
+    Set to `1` to abort the process after the first error is
+    encountered.
 
 `LTTNG_NETWORK_SOCKET_TIMEOUT`::
-    Socket connection, receive and send timeout (milliseconds). A value
-    of 0 or -1 uses the timeout of the operating system (default).
+    Socket connection, receive, and send timeout (milliseconds).
++
+Set to `0` or `-1` to set an infinite timeout (default).
 
 `LTTNG_RELAYD_DISALLOW_CLEAR`::
-    Set to 1 to disallow clearing operations (see man:lttng-clear(1)).
+    Set to `1` to disallow clearing operations (see man:lttng-clear(1)).
 +
-The option:--disallow-clear option overrides this variable.
+The option:--disallow-clear option overrides this environment variable.
 
 `LTTNG_RELAYD_HEALTH`::
-    Path to relay daemon health's socket.
+    Path to the health check socket of the relay daemon.
 
 `LTTNG_RELAYD_TCP_KEEP_ALIVE`::
-    Set to 1 to enable TCP keep-alive.
+    Set to `1` to enable TCP keep-alive.
 +
 The TCP keep-alive mechanism allows the detection of dead peers
-(man:lttng-sessiond(8)) in cases of unclean termination
-(for example, a hard reset) of a peer.
+(man:lttng-sessiond(8)) in cases of unclean termination (for example, a
+hard reset) of a peer.
 +
 Supported on Linux and Solaris only. The default behaviour of the TCP
 keep-alive mechanism is OS-specific.
 +
-Search for `tcp_keepalive` in man:tcp(7) for more information.
+Search for `tcp_keepalive` in man:tcp(7) to learn more.
 
 `LTTNG_RELAYD_TCP_KEEP_ALIVE_ABORT_THRESHOLD`::
-   The time threshold in seconds to abort a TCP connection after the keep-alive
-   probing mechanism has failed.
+   The time threshold (seconds) to abort a TCP connection after the
+   keep-alive probing mechanism has failed.
 +
-Set to 0 or -1 to use the value chosen by the operating system (default).
+Set to `0` or `-1` to use the value chosen by the operating system
+(default).
 +
 Supported on Solaris 11 only.
 +
-Search for `tcp_keepalive_abort_threshold` in man:tcp(7) for more information.
+Search for `tcp_keepalive_abort_threshold` in man:tcp(7) to learn more.
 
 `LTTNG_RELAYD_TCP_KEEP_ALIVE_IDLE_TIME`::
     Number of seconds a connection needs to be idle before TCP begins
     sending out keep-alive probes.
 +
-Set to 0 or -1 to use the value chosen by the operating system (default).
+Set to `0` or `-1` to use the value chosen by the operating system
+(default).
 +
 Supported on Linux and Solaris 11 only.
 +
-On Solaris{nbsp}11, the accepted values are -1, 0, and 10 to 864000.
+On Solaris{nbsp}11, the accepted values are `-1`, `0`, and `10` to
+`864000`.
 +
 Search for `tcp_keepalive_time` and `tcp_keepalive_interval`
-in man:tcp(7) on Solaris 11 for more information.
+in man:tcp(7) on Solaris{nbsp}11 to learn more.
 
 `LTTNG_RELAYD_TCP_KEEP_ALIVE_MAX_PROBE_COUNT`::
     Maximum number of TCP keep-alive probes to send before giving up and
     killing the connection if no response is obtained from the other end.
 +
-Set to 0 or -1 to use the value chosen by the operating system (default).
+Set to `0` or `-1` to use the value chosen by the operating system
+(default).
 +
 Supported on Linux only.
 +
-Search for `tcp_keepalive_probes` in man:tcp(7) for more information.
+Search for `tcp_keepalive_probes` in man:tcp(7) to learn more.
 
 `LTTNG_RELAYD_TCP_KEEP_ALIVE_PROBE_INTERVAL`::
     Number of seconds between TCP keep-alive probes.
 +
-Set to 0 or -1 to use the value chosen by the operating system (default).
+Set to `0` or `-1` to use the value chosen by the operating system
+(default).
 +
 Supported on Linux only.
 +
-Search for `tcp_keepalive_intvl` in man:tcp(7) for more information.
+Search for `tcp_keepalive_intvl` in man:tcp(7) to learn more.
 
 `LTTNG_RELAYD_WORKING_DIRECTORY`::
     Working directory of the processes the relay daemon creates.
 +
-The option:--working-directory option overrides this variable.
+The option:--working-directory option overrides this environment
+variable.
 
 
 FILES
 -----
 `$LTTNG_HOME/.lttng`::
-    User LTTng runtime and configuration directory.
+    Unix user's LTTng runtime and configuration directory.
 
 `$LTTNG_HOME/lttng-traces`::
-    Default base output directory of LTTng traces. This can be
-    overridden with the option:--output option.
+    Default base output directory of LTTng traces.
++
+Override this path with the option:--output option.
 
 NOTE: `$LTTNG_HOME` defaults to `$HOME`.
 
@@ -346,19 +390,6 @@ EXIT STATUS
     Fatal error
 
 
-LIMITATIONS
------------
-As of this version, only the TCP protocol is supported for both control
-and data ports. In future versions, TCP will remain the sole available
-protocol for control data since those communications are low-volume and
-need absolute reliability; trace data could be carried over UDP.
-
-For an unprivileged user running `lttng-relayd`, the maximum number of
-file descriptors per process is usually 1024. This limits the number of
-connections and opened trace files. This limit can be configured with
-*ulimit*(3).
-
-
 include::common-footer.txt[]
 
 
@@ -366,6 +397,4 @@ SEE ALSO
 --------
 man:lttng(1),
 man:lttng-sessiond(8),
-man:lttng-crash(1),
-man:lttng-ust(3),
 man:babeltrace2(1)
index e51fd10d0b7ad7cc8724f4e6d4373ef4e0321273..59d5da12220064b46b413001bb7c64a971ada917 100644 (file)
@@ -1,6 +1,6 @@
 lttng-remove-trigger(1)
 =======================
-:revdate: 5 March 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -18,10 +18,10 @@ DESCRIPTION
 -----------
 The `lttng remove-trigger` command removes the trigger named 'NAME'.
 
-See man:lttng-add-trigger(1) to learn more about LTTng triggers.
+See man:lttng-concepts(7) to learn more about LTTng triggers.
 
-List the available triggers and their name with the
-man:lttng-list-triggers(1) command.
+List the triggers of your Unix user, or of all users if your
+Unix user is `root`, with the man:lttng-list-triggers(1) command.
 
 The `remove-trigger` command removes a trigger which belong to your Unix
 user. If your Unix user is `root`, you can remove the trigger of another
@@ -47,6 +47,7 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
+man:lttng(1),
 man:lttng-add-trigger(1),
-man:lttng-list-triggers(1),
-man:lttng(1)
+man:lttng-concepts(7),
+man:lttng-list-triggers(1)
index c582126bd6a14137cdda0fde8c83942a6d72c86b..baebea94b44e5bd187b90d29a6de89fa39381a85 100644 (file)
@@ -1,11 +1,11 @@
 lttng-rotate(1)
 ===============
-:revdate: 18 October 2019
+:revdate: 30 April 2021
 
 
 NAME
 ----
-lttng-rotate - Archive a tracing session's current trace chunk
+lttng-rotate - Archive the current trace chunk of an LTTng tracing session
 
 
 SYNOPSIS
@@ -16,138 +16,78 @@ SYNOPSIS
 
 DESCRIPTION
 -----------
-The `lttng rotate` command archives the current trace chunk of the
-current tracing session, or of the tracing session named 'SESSION' if
-provided, to the file system. This action is called a tracing session
-_rotation_.
-
-Once LTTng archives a trace chunk, it does not manage it anymore: you
-can read it, modify it, move it, or remove it.
-
-An _archived trace chunk_ is a collection of metadata and data stream
-files which form a self-contained LTTng trace.
-
-The _current trace chunk_ of a given tracing session includes:
-
-* The stream files already written to the file system, and which are
-  not part of a previously archived trace chunk, since the most recent
-  event amongst:
-** The first time the tracing session was started with
-   man:lttng-start(1).
-** The last rotation, either an immediate one with `lttng rotate`, or an
-   automatic one from a rotation schedule previously set with
-   man:lttng-enable-rotation(1).
-* The content of all the non-flushed sub-buffers of the tracing
-  session's channels.
-
-You can use `lttng rotate`:
-
-* At any time when the tracing session is active (see
-  man:lttng-start(1)).
-* A single time once the tracing session becomes inactive
-  (see man:lttng-stop(1)).
-
-By default, the `lttng rotate` command ensures that LTTng finished
-performing the tracing session rotation before it prints the archived
-trace chunk's path and exits. The printed path is absolute when the
-tracing session was created in normal mode and relative to the relay
-daemon's output directory (see the nloption:--output option in
-man:lttng-relayd(8)) when it was created in network streaming mode (see
-man:lttng-create(1)).
-
-With the option:--no-wait option, the command finishes immediately, so
-that LTTng might not have completed the rotation when the command exits.
-In this case, there is no easy way to know when the current trace chunk
-becomes archived, and the command does not print the archived trace
-chunk's path.
+The `lttng rotate` command archives to the file system
+the current trace chunk of:
 
-Because when LTTng performs a tracing session rotation, it flushes the
-tracing session's current sub-buffers, archived trace chunks are never
-redundant, that is, they do not overlap over time like snapshots can
-(see man:lttng-snapshot(1)). Also, a rotation does not directly cause
-discarded event records or packets.
+With the 'SESSION' argument::
+    The tracing session named 'SESSION'.
 
-See <<limitations,LIMITATIONS>> for important limitations regarding
-this command.
+Without the 'SESSION' argument::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
+This action is called a _tracing session rotation_.
 
-Trace chunk archive naming
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-A trace chunk archive is a subdirectory of the `archives` subdirectory
-within a tracing session's output directory (see the nloption:--output
-option in man:lttng-create(1) and man:lttng-relayd(8)).
+See man:lttng-concepts(7) to learn more about the tracing session
+rotation and trace chunk concepts.
 
-A trace chunk archive contains, through tracing domain and possibly
-UID/PID subdirectories, metadata and data stream files.
+You can use the `rotate` command:
 
-A trace chunk archive is, at the same time:
+* Any time the tracing session is active.
 
-* A self-contained LTTng trace.
-* A member of a set of trace chunk archives which form the complete
-  trace of a tracing session.
+* A single time once the tracing session becomes inactive.
 
-In other words, an LTTng trace reader can read both the tracing
-session output directory (all the trace chunk archives), or a
-single trace chunk archive.
+See man:lttng-concepts(7) to learn more about the activity of a
+tracing session.
 
-When LTTng performs a tracing session rotation, it names the resulting
-trace chunk archive as such, relative to the tracing session's output
-directory:
+By default, the `rotate` command ensures that LTTng finished performing
+the tracing session rotation before it prints the path of the archived
+trace chunk and exits. The printed path is absolute when the tracing
+session was created in normal mode and relative to the base output
+directory of the relay daemon (see the nloption:--output option of
+man:lttng-relayd(8)) when it was created in network streaming mode (see
+man:lttng-create(1)).
 
-[verse]
-archives/__BEGIN__-__END__-__ID__
-
-__BEGIN__::
-    Date and time of the beginning of the trace chunk archive with
-    the ISO{nbsp}8601-compatible `YYYYmmddTHHMMSS±HHMM` form, where
-    `YYYYmmdd` is the date and `HHMMSS±HHMM` is the time with the
-    time zone offset from UTC.
-+
-Example: `20171119T152407-0500`
-
-__END__::
-    Date and time of the end of the trace chunk archive with
-    the ISO{nbsp}8601-compatible `YYYYmmddTHHMMSS±HHMM` form, where
-    `YYYYmmdd` is the date and `HHMMSS±HHMM` is the time with the
-    time zone offset from UTC.
-+
-Example: `20180118T152407+0930`
-
-__ID__::
-    Unique numeric identifier of the trace chunk within its tracing
-    session.
-
-Trace chunk archive name example:
+Make the command exit immediately with the option:--no-wait option. In
+this case, there's no easy way to know when the current trace chunk
+becomes archived, and the command does :not: print the path of the
+archived trace chunk.
 
-----
-archives/20171119T152407-0500-20171119T151422-0500-3
-----
+Because LTTng flushes the current sub-buffers of the selected tracing
+session when it performs a tracing session rotation, archived trace
+chunks are never redundant, that is, they do not overlap over time like
+snapshots can (see man:lttng-snapshot(1)). Also, a rotation does :not:
+directly cause discarded event records or packets.
 
+A `rotate-session` trigger action can also rotate a tracing session (see
+man:lttng-add-trigger(1)).
 
-include::common-cmd-options-head.txt[]
+[IMPORTANT]
+====
+You may only use the `rotate` command when:
 
+* The selected tracing session was created in normal mode or in network
+  streaming mode (see man:lttng-create(1)).
 
-option:-n, option:--no-wait::
-    Do not ensure that the rotation is done before returning to
-    the prompt.
+* No channel was created with a configured trace file count or size
+  limit (see the nloption:--tracefile-size and
+  nloption:--tracefile-count options of the man:lttng-enable-channel(1)
+  command).
 
+* LTTng is not currently performing an immediate rotation (this
+  command).
+====
 
-include::common-cmd-help-options.txt[]
 
+include::common-cmd-options-head.txt[]
 
-[[limitations]]
-LIMITATIONS
------------
-The `lttng rotate` command only works when:
 
-* The tracing session is created in normal mode or in network streaming
-  mode (see man:lttng-create(1)).
+option:-n, option:--no-wait::
+    Do not ensure that the tracing session rotation operation is
+    completed before exiting.
 
-* No channel was created with a configured trace file count or size
-  limit (see the nloption:--tracefile-size and
-  nloption:--tracefile-count options in man:lttng-enable-channel(1)).
 
-* No immediate rotation (`lttng rotate`) is currently happening.
+include::common-cmd-help-options.txt[]
 
 
 include::common-cmd-footer.txt[]
@@ -155,6 +95,7 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng-enable-rotation(1),
+man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-disable-rotation(1),
-man:lttng(1)
+man:lttng-enable-rotation(1)
index 1f526ef667878ddd5edcf98414017f201890c7f4..baf51fded03b9ccfd6baf871cadba0fe0d369c65 100644 (file)
@@ -1,6 +1,6 @@
 lttng-save(1)
 =============
-:revdate: 28 November 2016
+:revdate: 3 May 2021
 
 
 NAME
@@ -11,49 +11,62 @@ lttng-save - Save LTTng tracing session configurations
 SYNOPSIS
 --------
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *save* [option:--force] [option:--output-path='PATH'] ['SESSION']
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *save* [option:--force] [option:--output-path='DIR'] ['SESSION']
 
 
 DESCRIPTION
 -----------
-The `lttng save` command saves the configurations of one or more
-tracing sessions to files.
+The `lttng save` command saves to files the configurations of:
 
-The `lttng save` command is used in conjunction with the
-man:lttng-load(1) command to save and restore the complete
-configurations of tracing sessions. This includes the enabled channels
-and recording event rules, the context added to channels, the tracing
-activity, and more. `lttng save` does not save tracing data, only the
-tracing session parameters.
+With the 'SESSION' argument::
+       The tracing session named 'SESSION'.
 
-If 'SESSION' is omitted, all the existing tracing session configurations
-are saved (equivalent to using the option:--all option). Otherwise,
-'SESSION' is the name of an existing tracing session. `lttng list`
-outputs all the existing tracing sessions (see man:lttng-list(1)).
+Without the 'SESSION' argument::
+    *All* the tracing sessions of the connected session daemon for your
+    Unix user, or for all users if your Unix user is `root`, as listed
+    in the output of `lttng list` (see man:lttng-list(1)).
++
+See the ``Session daemon connection'' section of man:lttng(1) to learn
+how a user application connects to a session daemon.
+
+See man:lttng-concepts(7) to learn more about tracing sessions.
+
+Use the `save` command in conjunction with the man:lttng-load(1) command
+to save and restore the complete configurations of tracing sessions.
+
+The `save` command does :not: save tracing data, only the tracing
+session parameters, including the channel and recording event rule
+configurations.
 
 The default output directory path is `$LTTNG_HOME/.lttng/sessions`
-(`$LTTNG_HOME` defaults to `$HOME`). Each tracing session configuration
-file is named `SESSION.lttng`, where `SESSION` is the original tracing
-session name. The default output directory path can be overridden with
-the option:--output-path option.
+(`$LTTNG_HOME` defaults to `$HOME`). Override the default output
+directory path with the option:--output-path option. Each tracing
+session configuration file is named __SNAME__++.lttng++,
+where{nbsp}__SNAME__ is the original tracing session name.
 
-By default, existing tracing session configuration files are not
-overwritten when saving; the command fails. The option:--force option
-can be used to allow this.
+By default, the `save` command does :not: overwrite existing tracing
+session configuration files: the command fails. Allow the `save` command
+to overwrite existing tracing session configuration files with the
+option:--force option.
 
 
 include::common-cmd-options-head.txt[]
 
 
 option:-a, option:--all::
-    Save all tracing session configurations (default).
+    Save all the tracing session configurations of your Unix user, or of
+    all users if your Unix user is `root`, as listed in the output of
+    man:lttng-list(1), instead of the current tracing session or the
+    tracing session named 'SESSION'.
 
 option:-f, option:--force::
     Overwrite existing tracing session configuration files when
     saving.
 
-option:-o 'PATH', option:--output-path='PATH'::
-    Set output directory path to 'PATH'.
+option:-o 'DIR', option:--output-path='DIR'::
+    Save tracing session configuration files to the directory 'DIR'
+    instead of `$LTTNG_HOME/.lttng/sessions` (`$LTTNG_HOME` defaults to
+    `$HOME`).
 
 
 include::common-cmd-help-options.txt[]
@@ -64,5 +77,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng-load(1),
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-load(1)
index 8edb004b7d95c83f104d54347560671b0bff0e57..e9ec73d165ca4d126b349d05519a00e47855eaa2 100644 (file)
@@ -1,6 +1,8 @@
 lttng-sessiond(8)
 =================
 :revdate: 21 April 2021
+:daemon-bin-name: lttng-sessiond
+:daemon-ini-section: sessiond
 
 
 NAME
@@ -36,8 +38,8 @@ include::common-intro.txt[]
 
 An LTTng session daemon, `lttng-sessiond`, is a program which:
 
-* Manages tracing sessions (see man:lttng-create(1) to learn more about
-  tracing sessions).
+* Manages tracing sessions (see man:lttng-concepts(7) to learn more
+  about tracing sessions).
 
 * Controls the various components (like tracers and consumer daemons) of
   LTTng.
@@ -71,46 +73,19 @@ commands before it exits.
 NOTE: The LTTng project recommends that you start the session daemon at
 boot time for stable and long-term tracing.
 
+[NOTE]
+====
+For an unprivileged Unix user running `lttng-sessiond`, the maximum
+number of file descriptors per process is usually 1024. This limits the
+number of traceable applications, since, for each instrumented
+application, there are two file descriptors per CPU as well as one
+socket for bidirectional communication.
 
-[[cfg]]
-Daemon configuration
-~~~~~~~~~~~~~~~~~~~~
-When you run `lttng-sessiond`, it configures itself from, in this order:
-
-. The INI configuration file +{system_lttng_conf}+, if any.
-
-. The INI configuration file `$LTTNG_HOME/.lttng/lttng.conf`, if any.
-+
-`$LTTNG_HOME` defaults to `$HOME`.
-
-. With the option:--config='PATH' option: the INI configuration file
-  'PATH'.
-
-. The command-line options.
-
-Each step can override a previous configuration property.
-
-In INI configuration files, the session daemon only reads the properties
-under the `sessiond` INI section. Each INI property is:
-
-Key::
-    The long name of a command-line option to set (see the
-    <<options,OPTIONS>> section below).
-
-Value::
-    The selected command-line option accepts an argument:::
-        Option argument (string).
+For the `root` user, the limit is usually 65,535.
+====
 
-    The selected command-line option is a switch:::
-        `true`::::
-        `yes`::::
-        `on`::::
-            Enable the option.
 
-        `false`::::
-        `no`::::
-        `off`::::
-            Disable the option.
+include::common-daemon-cfg.txt[]
 
 INI configuration file example:
 
@@ -153,8 +128,8 @@ With the option:--load='PATH' option::
 [[options]]
 OPTIONS
 -------
-Daemon configuration
-~~~~~~~~~~~~~~~~~~~~
+General daemon configuration
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 option:-b, option:--background::
     Start as a Unix daemon, but keep file descriptors (console) open.
 +
@@ -211,11 +186,15 @@ option:--extra-kmod-probes='PROBE'[,'PROBE']...::
     For each 'PROBE' argument, load the LTTng kernel probe module
     named ++lttng-probe-++__PROBE__++.ko++, in addition to loading the
     default LTTng kernel probe modules.
++
+See also the `LTTNG_EXTRA_KMOD_PROBES` environment variable.
 
 option:--kmod-probes='PROBE'[,'PROBE']...::
     Only load, for each 'PROBE' argument, the LTTng kernel probe
     module named ++lttng-probe-++__PROBE__++.ko++, instead of loading
     the default LTTng kernel probe modules.
++
+See also the `LTTNG_KMOD_PROBES` environment variable.
 
 option:--no-kernel::
     Disable Linux kernel tracing.
@@ -236,15 +215,23 @@ option:-c 'PATH', option:--client-sock='PATH'::
 
 option:--consumerd32-libdir='PATH'::
     Set the 32-bit consumer daemon library directory to 'PATH'.
++
+See also the `LTTNG_CONSUMERD32_LIBDIR` environment variable.
 
 option:--consumerd32-path='PATH'::
     Set the 32-bit consumer daemon binary path to 'PATH'.
++
+See also the `LTTNG_CONSUMERD32_BIN` environment variable.
 
 option:--consumerd64-libdir='PATH'::
     Set the 64-bit consumer daemon library directory to 'PATH'.
++
+See also the `LTTNG_CONSUMERD64_LIBDIR` environment variable.
 
 option:--consumerd64-path='PATH'::
     Set the 64-bit consumer daemon binary path to 'PATH'.
++
+See also the `LTTNG_CONSUMERD32_BIN` environment variable.
 
 option:--kconsumerd-cmd-sock='PATH'::
     Set the command Unix socket path of the Linux kernel consumer daemon
@@ -334,28 +321,33 @@ Default: +{default_app_socket_rw_timeout}+.
 `LTTNG_CONSUMERD32_BIN`::
     32-bit consumer daemon binary path.
 +
-The option:--consumerd32-path option overrides this variable.
+The option:--consumerd32-path option overrides this environment
+variable.
 
 `LTTNG_CONSUMERD32_LIBDIR`::
     32-bit consumer daemon library directory path.
 +
-The option:--consumerd32-libdir option overrides this variable.
+The option:--consumerd32-libdir option overrides this environment
+variable.
 
 `LTTNG_CONSUMERD64_BIN`::
     64-bit consumer daemon binary path.
 +
-The option:--consumerd64-path option overrides this variable.
+The option:--consumerd64-path option overrides this environment
+variable.
 
 `LTTNG_CONSUMERD64_LIBDIR`::
     64-bit consumer daemon library directory path.
 +
-The option:--consumerd64-libdir option overrides this variable.
+The option:--consumerd64-libdir option overrides this environment
+variable.
 
 `LTTNG_DEBUG_NOCLONE`::
     Set to `1` to disable the use of man:clone(2)/man:fork(2).
 +
-Setting this variable is considered insecure, but it's required to allow
-debuggers to work with `lttng-sessiond` on some operating systems.
+Setting this environment variable is considered insecure, but it's
+required to allow debuggers to work with `lttng-sessiond` on some
+operating systems.
 
 `LTTNG_EXTRA_KMOD_PROBES`::
     Extra LTTng kernel probe modules to load.
@@ -429,20 +421,10 @@ EXIT STATUS
     Fatal error
 
 
-LIMITATIONS
------------
-For an unprivileged Unix user running `lttng-sessiond`, the maximum
-number of file descriptors per process is usually 1024. This limits the
-number of traceable applications, since, for each instrumented
-application, there are two file descriptors per CPU as well as one
-socket for bidirectional communication.
-
-For the `root` user, the limit is usually 65,535.
-
-
 include::common-footer.txt[]
 
 
 SEE ALSO
 --------
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7)
index 2e97c055b9e46618aff9b6e524a015b767a48387..6c04caf927707d23428390a1cbdbc1bd6ac4d1f4 100644 (file)
@@ -1,6 +1,6 @@
 lttng-set-session(1)
 ====================
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -19,36 +19,14 @@ DESCRIPTION
 The `lttng set-session` command sets the current tracing session of your
 Unix user to the tracing session named 'SESSION'.
 
-See man:lttng-create(1) to learn more about the current tracing session.
-
-The following man:lttng(1) commands select the current tracing session
-if you don't specify one:
-
-* man:lttng-add-context(1)
-* man:lttng-clear(1)
-* man:lttng-destroy(1)
-* man:lttng-disable-channel(1)
-* man:lttng-disable-event(1)
-* man:lttng-disable-rotation(1)
-* man:lttng-enable-channel(1)
-* man:lttng-enable-event(1)
-* man:lttng-enable-rotation(1)
-* man:lttng-regenerate(1)
-* man:lttng-rotate(1)
-* man:lttng-save(1)
-* man:lttng-snapshot(1)
-* man:lttng-start(1)
-* man:lttng-status(1)
-* man:lttng-stop(1)
-* man:lttng-track(1)
-* man:lttng-untrack(1)
-* man:lttng-view(1)
+See man:lttng-concepts(7) to learn more about the current tracing session.
 
 The `set-session` command effectively updates the `$LTTNG_HOME/.lttngrc`
 file.
 
-List the tracing sessions of your Unix user with the man:lttng-list(1)
-command.
+List the tracing sessions of your Unix user, or of all users if
+your Unix user is `root`, within the connected session daemon with the
+man:lttng-list(1) command.
 
 
 include::common-cmd-options-head.txt[]
@@ -62,6 +40,7 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
+man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
-man:lttng-destroy(1),
-man:lttng(1)
+man:lttng-destroy(1)
index d60d6fcef0aaba6e24885dc546225b031fb6e5e8..94bf7c9f585c7e6b5aca7b8347d887ce40e59549 100644 (file)
 lttng-snapshot(1)
 =================
-:revdate: 9 November 2018
+:revdate: 3 May 2021
 
 
 NAME
 ----
-lttng-snapshot - Take LTTng snapshots and configure snapshot outputs
+lttng-snapshot - Take a snapshot of an LTTng tracing session
 
 
 SYNOPSIS
 --------
-Add a snapshot output:
+Take a tracing session snapshot:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot add-output* [option:--max-size='SIZE']
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot* *record* [option:--max-size='SIZE']
       [option:--name='NAME'] [option:--session='SESSION']
-      (option:--ctrl-url='URL' option:--data-url='URL' | 'URL')
+      [option:--ctrl-url='URL' option:--data-url='URL' | 'URL']
 
-Remove a snapshot output:
+Add a snapshot output to a tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot del-output* [option:--session='SESSION']
-      ('ID' | 'NAME')
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot* *add-output* [option:--max-size='SIZE']
+      [option:--name='NAME'] [option:--session='SESSION']
+      (option:--ctrl-url='URL' option:--data-url='URL' | 'URL')
 
-List current snapshot outputs:
+Show the snapshot output of a tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot list-output* [option:--session='SESSION']
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot* *list-output* [option:--session='SESSION']
 
-Take a snapshot:
+Remove the snapshot output from a tracing session:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot record* [option:--max-size='SIZE']
-      [option:--name='NAME'] [option:--session='SESSION']
-      (option:--ctrl-url='URL' option:--data-url='URL' | 'URL')
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *snapshot* *del-output* [option:--session='SESSION'] *1*
 
 
 DESCRIPTION
 -----------
-The `lttng snapshot` command manages the snapshot outputs and takes
-snapshots.
-
-A _snapshot_ is a dump of the current sub-buffers of all the channels
-of a given tracing session. When a snapshot is taken, the memory dump
-is sent to the registered snapshot outputs.
+The `lttng snapshot` command can take a snapshot of, add or remove a
+snapshot output, and show the snapshot output of:
 
-The tracing session should be created in _snapshot mode_ to make sure
-that taking snapshots is allowed. This is done at tracing session
-creation time using the man:lttng-create(1) command's
-nloption:--snapshot option.
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
-Note that, when a snapshot is taken, the sub-buffers are not cleared.
-This means that different recorded snapshots may contain the same
-events.
-
-If you want, instead, to keep all the trace data, but divide it into
-archived chunks which are then free to process (just like snapshots),
-see the lttng-rotate(1) and lttng-enable-rotation(1) commands. Trace
-chunk archives do not overlap like snapshots can.
-
-
-Snapshot outputs
-~~~~~~~~~~~~~~~~
-Snapshot outputs are the destinations of snapshot files when a
-snapshot is taken using the `record` action.
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-As of this version, only one snapshot output is allowed.
+See man:lttng-concepts(7) to learn more about tracing sessions.
 
-A snapshot output can be added using the `add-output` action. The
-output destination URL is set using either the 'URL' positional
-argument, or both the option:--ctrl-url and option:--data-url options.
-See man:lttng-create(1) to learn more about the URL format.
+A _snapshot_ is a dump of the current sub-buffers of all the channels of
+the selected tracing session.
 
-A name can be assigned to an output when adding it using the
-option:--name option. This name is part of the names of the
-snapshot files written to this output.
+When LTTng takes a snapshot, it sends the sub-buffer dump of the
+selected tracing session to the local file system or over the network to
+a listening relay daemon (man:lttng-relayd(8)). See the
+<<output,Snapshot output>> section below to learn more.
 
-By default, the snapshot files can be as big as the sum of the
-sizes of all the sub-buffers or all the channels of the selected
-tracing session. The maximum total size of all the snapshot files can
-be configured using the option:--max-size option.
+When LTTng takes a snapshot, it does :not: clear the sub-buffers of the
+selected tracing session. In other words, different snapshots of the
+selected tracing session can contain the same event records.
 
-Snapshot outputs can be listed using the `list-output` action.
+You must have created the selected tracing session in snapshot mode (see
+the nloption:--snapshot option of the man:lttng-create(1) command as
+well as man:lttng-concepts(7) to learn more about tracing session modes)
+to use the `snapshot` command.
 
-Snapshot outputs can be removed using the `del-output` action. The
-configured name can be used when removing an output, or an ID as
-listed by the `list-output` action.
+A `snapshot-session` trigger action can also take a tracing session
+snapshot (see man:lttng-add-trigger(1)).
 
+If you want, instead, to keep all the trace data, but divide it into
+archived chunks which are then, like snapshots, ready to be processed,
+see the tracing session rotation feature in man:lttng-concepts(7). Trace
+chunk archives do :not: overlap like snapshots can.
 
-Taking a snapshot
-~~~~~~~~~~~~~~~~~
-Taking a snapshot of the current tracing session is as easy as:
+[NOTE]
+====
+Before you take a snapshot on a system with a high event throughput, the
+LTTng project recommends that you first run the man:lttng-stop(1)
+command. Otherwise, the snapshot could contain ``holes'', the result of
+the tracers overwriting unconsumed trace packets during the snapshot
+operation.
 
-[role="term"]
-----
-$ lttng snapshot record
-----
+After LTTng writes the snapshot trace data, you can restart the tracing
+session with the man:lttng-start(1) command.
+====
 
-This writes the snapshot files to the configured output. It is possible
-to use a custom, unregistered output at record time using the same
-options supported by the `add-output` action.
 
-NOTE: Before taking a snapshot on a system with a high event throughput,
-it is recommended to first run `lttng stop` (see
-man:lttng-stop(1)). Otherwise, the snapshot could contain "holes",
-the result of the tracers overwriting unconsumed trace packets during
-the record operation. After the snapshot is recorded, the tracers can be
-started again with `lttng start` (see man:lttng-start(1)).
+[[output]]
+Snapshot output
+~~~~~~~~~~~~~~~
+When you take a tracing session snapshot with the `record` action, LTTng
+writes the snapshot trace files to:
+
+If you specify the 'URL' non-option argument or the option:--ctrl-url and option:--data-url options::
+    The output defined by the 'URL' non-option argument or by the
+    arguments of the options.
++
+See man:lttng-create(1) for the format of 'URL'.
+
+Otherwise::
+    The snapshot output of the selected tracing session.
++
+Add a snapshot output to a tracing session with the `add-output` action.
+As of LTTng{nbsp}{lttng_version}, you may only add one snapshot output
+to a given tracing session.
++
+When you create a snapshot mode tracing session with the
+nloption:--snapshot option of the man:lttng-create(1) command, and
+without its nloption:--no-output option, the `create` command
+automatically adds a snapshot output named `snapshot-1` to the created
+tracing session:
++
+--
+With its nloption:--output, nloption:--set-url, nloption:--ctrl-url, or nloption:--data-url options::
+    Equivalent to using the `add-output` action with the provided or
+    equivalent URL(s) immediately after creating the tracing session.
+
+Otherwise::
+    A subdirectory, under the `$LTTNG_HOME/lttng-traces` (`$LTTNG_HOME`
+    defaults to `$HOME`) directory, of which the name contains the
+    tracing session name and the date/time.
+--
++
+Show the current snapshot output of a tracing session with the
+`list-output` action.
++
+Remove the snapshot output of a tracing session with the
+`del-output` action.
+
+For both the `record` and `add-output` actions:
+
+* Assign a name to a snapshot output with the option:--name='NAME'
+  option.
++
+'NAME' becomes part of the snapshot trace file names which LTTng sends
+to this output.
+
+* By default, the snapshot files can be as big as the sum of the sizes
+  of all the sub-buffers of all the channels of the selected tracing
+  session.
++
+Set the maximum total size of all the snapshot trace files LTTng writes
+with the option:--max-size option.
 
 
 include::common-cmd-options-head.txt[]
 
 
-Target
-~~~~~~
+Recording target
+~~~~~~~~~~~~~~~~
 option:-s 'SESSION', option:--session='SESSION'::
-    Take a snapshot of the sub-buffers of the channels contained in
-    the tracing session named 'SESSION' instead of the current
-    tracing session.
+    Take a snapshot of the sub-buffers of the tracing session named
+    'SESSION' instead of the current tracing session.
 
 
-Snapshot output
-~~~~~~~~~~~~~~~
+Output
+~~~~~~
+See the <<output,Snapshot output>> section above.
+
 option:-C 'URL', option:--ctrl-url='URL'::
-    Set control path URL to 'URL' (must use option:--data-url option
-    also).
+    Set the control path URL to 'URL'.
++
+You must also use the option:--data-url option.
++
+See man:lttng-create(1) for the format of 'URL'.
 
 option:-D 'URL', option:--data-url='URL'::
-    Set data path URL to 'URL' (must use option:--ctrl-url option
-    also).
+    Set the trace data path URL to 'URL'.
++
+You must also use the option:--ctrl-url option.
++
+See man:lttng-create(1) for the format of 'URL'.
 
 option:-m 'SIZE', option:--max-size='SIZE'::
-    Limit the total size of all the snapshot files written when
-    recording a snapshot to 'SIZE' bytes. The `k` (kiB), `M` (MiB),
-    and `G` (GiB) suffixes are supported.
+    Set the maximum total size of all the snapshot trace files LTTng
+    writes when taking a snapshot to 'SIZE' bytes.
++
+The `k`{nbsp}(KiB), `M`{nbsp}(MiB), and `G`{nbsp}(GiB) suffixes are
+supported.
 
 option:-n 'NAME', option:--name='NAME'::
     Assign the name 'NAME' to the snapshot output.
@@ -147,4 +192,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-create(1)
index a5f8c2f50159d1efa663233a5b376344ffaf9a24..53b1c8aa74f4b32c46774547111047f4bc3e56db 100644 (file)
@@ -1,6 +1,6 @@
 lttng-start(1)
 ==============
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -23,17 +23,14 @@ With the 'SESSION' argument::
     The tracing session named 'SESSION'.
 
 Without the 'SESSION' argument::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+See man:lttng-concepts(7) to learn more about tracing sessions.
 
 The selected tracing session must be inactive (stopped). A tracing
 session is inactive on creation (see man:lttng-create(1)).
 
-An active tracing session is an implicit recording event rule condition
-(see man:lttng-enable-event(1)). In other words, a recording event rule
-cannot match an event when its tracing session is inactive.
-
 A `start-session` trigger action can also start a tracing session
 (see man:lttng-add-trigger(1)).
 
@@ -53,6 +50,7 @@ SEE ALSO
 --------
 man:lttng(1),
 man:lttng-add-trigger(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
 man:lttng-enable-event(1),
 man:lttng-stop(1)
index caeac97035fad239137187082106a8a975e0e7b9..81f755d577afe2a1a5770a1b33b03aa1590e09cb 100644 (file)
@@ -1,6 +1,6 @@
 lttng-status(1)
 ===============
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -17,8 +17,8 @@ SYNOPSIS
 DESCRIPTION
 -----------
 The `lttng status` command shows the status of the current tracing
-session (see man:lttng-create(1) and man:lttng-set-session(1) to learn
-more about the current tracing session).
+session (see man:lttng-concepts(7) to learn more about the current
+tracing session).
 
 This command is equivalent to:
 
@@ -40,6 +40,7 @@ include::common-cmd-footer.txt[]
 SEE ALSO
 --------
 man:lttng(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
 man:lttng-list(1),
 man:lttng-set-session(1)
index 5c21c6ce404e467f3e4b2192635e67e49aa41261..c6f63c36c75e25cd3897b59407c8f5b5420dfa9a 100644 (file)
@@ -1,6 +1,6 @@
 lttng-stop(1)
 =============
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -23,18 +23,15 @@ With the 'SESSION' argument::
     The tracing session named 'SESSION'.
 
 Without the 'SESSION' argument::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
+
+See man:lttng-concepts(7) to learn more about tracing sessions.
 
 The selected tracing session must be active (started; see
 man:lttng-start(1)). A tracing session is inactive on creation (see
 man:lttng-create(1)).
 
-An active tracing session is an implicit recording event rule condition
-(see man:lttng-enable-event(1)). In other words, a recording event rule
-cannot match an event when its tracing session is inactive.
-
 A `stop-session` trigger action can also stop a tracing session (see
 man:lttng-add-trigger(1)).
 
@@ -74,6 +71,7 @@ SEE ALSO
 --------
 man:lttng(1),
 man:lttng-add-trigger(1),
+man:lttng-concepts(7),
 man:lttng-create(1),
 man:lttng-enable-event(1),
 man:lttng-rotate(1),
index 6157bcd431daafaf4582924860cf59510198144f..0e6cfceba9a40637dbc9df4ed9e1cfd1e723556f 100644 (file)
 lttng-track(1)
 ==============
-:revdate: 4 March 2020
+:revdate: 1 May 2021
 
 
 NAME
 ----
-lttng-track - Add one or more values to an LTTng process attribute tracker
+lttng-track - Allow specific processes to record LTTng events
 
 
 SYNOPSIS
 --------
-Add specific process attribute values to a Linux kernel domain tracker:
+Allow specific processes to record Linux kernel events:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel [option:--session='SESSION']
       (option:--pid=PID[,PID]... | option:--vpid=VPID[,VPID]... |
-      option:--uid=UID[,UID]... | option:--vuid=VUID[,VUID]... |
-      option:--gid=GID[,GID]... | option:--vgid=VGID[,VGID]... )...
+       option:--uid=UID[,UID]... | option:--vuid=VUSER[,VUSER]... |
+       option:--gid=GID[,GID]... | option:--vgid=VGROUP[,VGROUP]...)...
 
-Add all possible process attribute values to a Linux kernel domain tracker:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel
-      option:--all (option:--pid | option:--vpid | option:--uid |
-      option:--vuid | option:--gid | option:--vgid )...
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--kernel [option:--session='SESSION']
+      option:--all (option:--pid | option:--vpid | option:--uid | option:--vuid | option:--gid | option:--vgid)...
 
-Add specific process attribute values to a user space domain tracker:
+Allow specific processes to record user space events:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace
-      (option:--vpid=VPID[,VPID]... | option:--vuid=VUID[,VUID]... | option:--vgid=VGID[,VGID]...)...
-
-Add all possible process attribute values to a user space domain tracker:
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace [option:--session='SESSION']
+      (option:--vpid=VPID[,VPID]... | option:--vuid=VUSER[,VUSER]... |
+       option:--vgid=VGROUP[,VGROUP]...)...
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *track* option:--userspace [option:--session='SESSION']
       option:--all (option:--vpid | option:--vgid | option:--vuid)...
 
 
 DESCRIPTION
 -----------
-The `lttng track` commands adds one or more values to a
-process attribute tracker.
+The `lttng track` command allows one or more processes to record LTTng
+events based on their attributes within:
 
-A process attribute tracker is an _inclusion set_ of process attributes.
-Tracked processes are allowed to emit events, provided those events are
-targeted by enabled recording event rules (see
-man:lttng-enable-event(1)).
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
-Tracker values can be removed from an inclusion set with
-man:lttng-untrack(1).
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-The available process attribute trackers are:
+See man:lttng-concepts(7) to learn more about tracing sessions and
+recording event rules.
 
-* Process ID (PID)
-* Virtual PID (VPID)
-* User ID (UID)
-* Virtual UID (VUID)
-* Group ID (GID)
-* Virtual GID (VGID)
+The `track` command adds values to _inclusion sets_ of process
+attributes. The available inclusion sets are, for a given tracing
+session:
 
+With the option:--kernel option::
++
+* Process ID (PID).
 
-A tracker follows one or more process attribute values; only the
-processes with a tracked value are allowed to emit events. By default,
-all possible values on the system are tracked: any process may emit
-enabled events, the equivalent of:
+* Virtual process ID (VPID).
++
+This is the PID as seen by the application.
 
-[role="term"]
-----
-$ lttng track --kernel --pid --vpid --uid --vuid --gid --vgid --all
-$ lttng track --userspace --vpid --vuid --vgid --all
-----
+* Unix user ID (UID).
 
-With the PID tracker, for example, you can record all system calls of a
-given process:
+* Virtual Unix user ID (VUID).
++
+This is the UID as seen by the application.
+
+* Unix group ID (GID).
+
+* Virtual Unix group ID (VGID).
++
+This is the GID as seen by the application.
+
+With the option:--userspace option::
++
+* VPID
+* VUID
+* VGID
+
+When an event{nbsp}__E__ satisfies all the other explicit and implicit
+conditions of an event rule{nbsp}__ER__, __ER__ matches{nbsp}__E__ if
+the attributes of the process for which LTTng creates{nbsp}__E__ are
+*all* part of the inclusion sets of the tracing session and domain
+of{nbsp}__ER__.
+
+By default, on tracing session creation (see man:lttng-create(1)),
+all processes are allowed to record events. In other words, all the
+inclusion sets of the tracing session contain all the possible
+process attribute values.
+
+If a given inclusion set{nbsp}__IS__ contains all the possible values
+(option:--all option), then using the `track` command to add one or more
+values{nbsp}__V__ to{nbsp}__IS__:
+
+. Removes all the values from{nbsp}__IS__.
++
+This effectively makes{nbsp}__IS__ empty.
+
+. Adds{nbsp}__V__ to{nbsp}__IS__.
+
+Example: with the PID inclusion set, you can record all the system calls
+of a given process:
 
 [role="term"]
 ----
@@ -82,173 +111,181 @@ $ lttng track --kernel --pid=2345
 $ lttng start
 ----
 
-If all the PIDs are tracked (with the option:--pid and option:--all
-options), which is the default state of all domains when creating a
-tracing session), then using the track command with one or more
-specific PIDs has the effect of first removing all the PIDs from the
-inclusion set, then adding the specified PIDs.
+Remove values from an inclusion set with the man:lttng-untrack(1)
+command.
 
 
-Example
-~~~~~~~
-Assume the maximum system PID is 7 for this example.
+Inclusion set example
+~~~~~~~~~~~~~~~~~~~~~
+This example operates on the Linux kernel process ID (PID) inclusion set
+of the current tracing session to show how an inclusion set works.
 
-Initial inclusion set:
+Assume the maximum system PID is 7 for this example.
 
+. Initial inclusion set:
++
 -------------------------------
 [0] [1] [2] [3] [4] [5] [6] [7]
 -------------------------------
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng track --kernel --pid=3,6,7
 ----
-
-inclusion set:
-
++
+Inclusion set is now:
++
 -------------------------------
 [ ] [ ] [ ] [3] [ ] [ ] [6] [7]
 -------------------------------
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng untrack --kernel --pid=7
 ----
-
-inclusion set:
-
++
+Inclusion set is now:
++
 -------------------------------
 [ ] [ ] [ ] [3] [ ] [ ] [6] [ ]
 -------------------------------
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng track --kernel --pid=1,5
 ----
-
-inclusion set:
-
++
+Inclusion set is now:
++
 -------------------------------
 [ ] [1] [ ] [3] [ ] [5] [6] [ ]
 -------------------------------
 
-See the man:lttng-untrack(1) for more details about removing
-values from the inclusion set.
+Remove values from an inclusion set with the man:lttng-untrack(1)
+command.
 
 
 include::common-cmd-options-head.txt[]
 
 
-Domain
-~~~~~~
+Tracing domain
+~~~~~~~~~~~~~~
 One of:
 
 option:-k, option:--kernel::
-    Track process attributes in the Linux kernel domain.
+    Add values to one or more Linux kernel inclusion sets.
 
 option:-u, option:--userspace::
-    Track process attributes in the user space domain.
-
+    Add values to one or more user space inclusion sets.
 
-Target
-~~~~~~
+Recording target
+~~~~~~~~~~~~~~~~
 option:-s 'SESSION', option:--session='SESSION'::
-    Track process attributes in the tracing session named 'SESSION' instead of
-    the current tracing session.
+    Add values to one or more inclusion sets of the tracing session
+    named 'SESSION' instead of the current tracing session.
 
 
-Tracking
-~~~~~~~~
-option:-a, option:--all::
-    Used in conjunction with a single, empty option:--pid,
-    option:--vpid, option:--uid, option:--vuid, option:--gid,
-    or option:--vgid option: track _all_ possible process attribute
-    values (add all values to the inclusion set).
-
+Inclusion set selection
+~~~~~~~~~~~~~~~~~~~~~~~
 option:-p ['PID'[,'PID']...], option:--pid[='PID'[,'PID']...]::
-    Track process ID values 'PID' (add them to the process ID inclusion
-    set).
+    For each 'PID' argument, add 'PID' to the process ID inclusion set
+    of the selected tracing session and domain.
 +
-'PID' is the process ID attribute of a process as seen from the _root
-PID namespace_ (see man:pid_namespaces(7)). It can only be used with
-the option:--kernel domain option.
+'PID' is the process ID attribute of a process as seen from the root
+PID namespace (see man:pid_namespaces(7)).
 +
-The 'PID' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
 option:--vpid[='VPID'[,'VPID']...]::
-    Track virtual process ID values 'VPID' (add them to the virtual
-    process ID inclusion set).
+    For each 'VPID' argument, add 'VPID' to the virtual process ID
+    inclusion set of the selected tracing session and domain.
 +
 'VPID' is the virtual process ID attribute of a process as seen from
-the _PID namespace_ of the process (see man:pid_namespaces(7)).
-+
-The 'VPID' argument must be omitted when also using the option:--all
-option.
+the PID namespace of the process (see man:pid_namespaces(7)).
 
 option:--uid[='USER'[,'USER']...]::
-    Track user ID process attribute values 'USER' (add them to the
-    user ID inclusion set).
+    For each 'USER' argument, add 'USER' to the user ID inclusion set of
+    the selected tracing session and domain.
 +
-'USER' is the real user ID (see man:getuid(3)) of a process as seen
-from the _root user namespace_ (see man:user_namespaces(7)). It can
-only be used with the option:--kernel domain option.
+'USER' is either:
 +
-'USER' can also be a user name. The user name resolution is performed
-by the session daemon (see man:lttng-sessiond(8)) on addition to the
-user ID inclusion set.
+--
+* The real user ID (see man:getuid(3)) of a process as seen
+  from the root user namespace (see man:user_namespaces(7)).
+
+* A user name.
++
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the user name resolution on addition to the user ID inclusion set.
+--
 +
-The 'USER' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
-option:--vuid[='USER'[,'USER']...]::
-    Track virtual user ID process attribute values 'USER' (add them to
-    the virtual user ID inclusion set).
+option:--vuid[='VUSER'[,'VUSER']...]::
+    For each 'VUSER' argument, add 'VUSER' to the virtual user ID
+    inclusion set of the selected tracing session and domain.
 +
-'USER' is the real user ID (see man:getuid(3)) of a process as seen
-from the _user namespace_ of the process (see man:user_namespaces(7)).
+'VUSER' is either:
 +
-'USER' can also be a user name. The user name resolution is performed
-by the session daemon (see man:lttng-sessiond(8)) on addition to the
-virtual user ID inclusion set.
+--
+* The real user ID (see man:getuid(3)) of a process as seen
+  from the user namespace (see man:user_namespaces(7)).
+
+* A user name.
 +
-The 'USER' argument must be omitted when also using the option:--all
-option.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the user name resolution on addition to the virtual user ID inclusion
+set.
+--
 
 option:--gid[='GROUP'[,'GROUP']...]::
-    Track group ID process attribute values 'GROUP' (add them to the
-    group ID inclusion set).
+    For each 'GROUP' argument, add 'GROUP' to the group ID
+    inclusion set of the selected tracing session and domain.
 +
-'GROUP' is the real group ID (see man:getgid(3)) of a process as seen
-from the _root user namespace_ (see man:user_namespaces(7)). It can
-only be used with the option:--kernel domain option.
+'GROUP' is either:
 +
-'GROUP' can also be a group name. The group name resolution is
-performed by the session daemon (see man:lttng-sessiond(8)) on addition
-to the group ID inclusion set.
+--
+* The real group ID (see man:getgid(3)) of a process as seen from the
+  root user namespace (see man:user_namespaces(7)).
+
+* A group name.
++
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the group name resolution on addition to the group ID inclusion set.
+--
 +
-The 'GROUP' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
-option:--vgid[='GROUP'[,'GROUP']...]::
-    Track virtual group ID process attribute values 'GROUP'(add them to
-    the virtual group ID inclusion set).
+option:--vgid[='VGROUP'[,'VGROUP']...]::
+    For each 'VGROUP' argument, add 'VGROUP' to the virtual group ID
+    inclusion set of the selected tracing session and domain.
 +
-'GROUP' is the real group ID (see man:getgid(3)) of a process as seen
-from the _user namespace_ of the process (see man:user_namespaces(7)).
+'VGROUP' is either:
 +
-'GROUP' can also be a group name. The group name resolution is performed
-by the session daemon (see man:lttng-sessiond(8)) on addition to the
-virtual group ID inclusion set.
+--
+* The real group ID (see man:getgid(3)) of a process as seen
+  from the user namespace (see man:user_namespaces(7)).
+
+* A group name.
 +
-The 'GROUP' argument must be omitted when also using the option:--all
-option.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the group name resolution on addition to the virtual group ID inclusion
+set.
+--
+
+
+Inclusion set operation
+~~~~~~~~~~~~~~~~~~~~~~~
+option:-a, option:--all::
+    With one or more empty option:--pid, option:--vpid, option:--uid,
+    option:--vuid, option:--gid, and option:--vgid options: add *all*
+    the possible values to the selected inclusion sets.
 
 
 include::common-cmd-help-options.txt[]
@@ -259,5 +296,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng-untrack(1),
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-untrack(1)
index f1a8720249f50daf2669602375129064bcf32cd7..01e82b1b4368bbab722f9ebfb4478722885c6e76 100644 (file)
@@ -1,94 +1,95 @@
 lttng-untrack(1)
 ================
-:revdate: 4 March 2020
+:revdate: 1 May 2021
 
 
 NAME
 ----
-lttng-untrack - Remove one or more values from an LTTng process attribute tracker
+lttng-untrack - Disallow specific processes to record LTTng events
 
 
 SYNOPSIS
 --------
-Remove specific process attribute values from a Linux kernel domain tracker:
+Disallow specific processes to record Linux kernel events:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--kernel
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--kernel [option:--session='SESSION']
       (option:--pid=PID[,PID]... | option:--vpid=VPID[,VPID]... |
-      option:--uid=UID[,UID]... | option:--vuid=VUID[,VUID]... |
-      option:--gid=GID[,GID]... | option:--vgid=VGID[,VGID]... )...
-
-Remove all possible process attribute values from a Linux kernel domain tracker:
+       option:--uid=UID[,UID]... | option:--vuid=VUSER[,VUSER]... |
+       option:--gid=GID[,GID]... | option:--vgid=VGROUP[,VGROUP]...)...
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--kernel
-      option:--all (option:--pid | option:--vpid | option:--uid |
-      option:--vuid | option:--gid | option:--vgid )...
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--kernel [option:--session='SESSION']
+      option:--all (option:--pid | option:--vpid | option:--uid | option:--vuid | option:--gid | option:--vgid)...
 
-Remove specific process attribute values from a user space domain tracker:
+Disallow specific processes to record user space events:
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--userspace
-      (option:--vpid=VPID[,VPID]... | option:--vuid=VUID[,VUID]... | option:--vgid=VGID[,VGID]...)...
-
-Remove all possible process attribute values from a user space domain tracker:
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--userspace [option:--session='SESSION']
+      (option:--vpid=VPID[,VPID]... | option:--vuid=VUSER[,VUSER]... |
+       option:--vgid=VGROUP[,VGROUP]...)...
 
 [verse]
-*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--userspace
+*lttng* ['linkgenoptions:(GENERAL OPTIONS)'] *untrack* option:--userspace [option:--session='SESSION']
       option:--all (option:--vpid | option:--vgid | option:--vuid)...
 
 
 DESCRIPTION
 -----------
-The `lttng untrack` commands removes one or more values from a
-process attribute tracker.
+The `lttng untrack` command disallows one or more processes to record
+LTTng events based on their attributes within:
+
+With the option:--session='SESSION' option::
+    The tracing session named 'SESSION'.
 
-See man:lttng-track(1) to learn more about LTTng trackers.
+Without the option:--session option::
+    The current tracing session (see man:lttng-concepts(7) to learn more
+    about the current tracing session).
 
-The untrack command removes specific process attribute values from a
-tracker's inclusion set. The attributes to remove must have been
-precedently added by man:lttng-track(1). It is also possible to remove
-all the possible values of a process attribute from the inclusion set
-using the option:--all option.
+See man:lttng-concepts(7) to learn more about tracing sessions and
+recording event rules.
+
+The `untrack` command removes values from _inclusion sets_ of process
+attributes. See man:lttng-track(1) to learn more about inclusion sets.
 
 
 Example
 ~~~~~~~
-One common operation is to create a tracing session
-(see man:lttng-create(1)), remove all the entries from the PID
-tracker inclusion set, start tracing, and then manually track PIDs
-while tracing is active.
+A common operation is to create a tracing session (see
+man:lttng-create(1)), remove all the entries from the PID tracker
+inclusion set, start tracing, and then manually track PIDs while the
+tracing session is active.
 
 Assume the maximum system PID is 7 for this example.
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng create
 ----
-
++
 Initial inclusion set:
-
++
 -------------------------------
 [0] [1] [2] [3] [4] [5] [6] [7]
 -------------------------------
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng untrack --kernel --pid --all
 ----
-
-inclusion set:
-
++
+Inclusion set:
++
 -------------------------------
 [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ]
 -------------------------------
 
-Commands:
-
+Commands:
++
 [role="term"]
 ----
 $ lttng enable-event --kernel ...
@@ -96,22 +97,22 @@ $ lttng start
 $ # ...
 $ lttng track --kernel --pid=3,5
 ----
-
-inclusion set:
-
++
+Inclusion set:
++
 -------------------------------
 [ ] [ ] [ ] [3] [ ] [5] [ ] [ ]
 -------------------------------
 
-Command:
-
+Command:
++
 [role="term"]
 ----
 $ lttng track --kernel --pid=2
 ----
-
-inclusion set:
-
++
+Inclusion set:
++
 -------------------------------
 [ ] [ ] [2] [3] [ ] [5] [ ] [ ]
 -------------------------------
@@ -120,106 +121,119 @@ inclusion set:
 include::common-cmd-options-head.txt[]
 
 
-Domain
-~~~~~~
+Tracing domain
+~~~~~~~~~~~~~~
 One of:
 
 option:-k, option:--kernel::
-    Track process attributes in the Linux kernel domain.
+    Remove values from one or more Linux kernel inclusion sets.
 
 option:-u, option:--userspace::
-    Track process attributes in the user space domain.
+    Remove values from one or more user space inclusion sets.
 
 
-Target
-~~~~~~
+Recording target
+~~~~~~~~~~~~~~~~
 option:-s 'SESSION', option:--session='SESSION'::
-    Untrack process attributes in the tracing session named 'SESSION'
-    instead of the current tracing session.
+    Remove values from one or more inclusion sets of the tracing session
+    named 'SESSION' instead of the current tracing session.
 
 
-Untracking
-~~~~~~~~~~
-option:-a, option:--all::
-    Used in conjunction with a single, empty option:--pid,
-    option:--vpid, option:--uid, option:--vuid, option:--gid,
-    or option:--vgid option: untrack _all_ possible process attribute
-    values (remove all values from the inclusion set).
-
+Inclusion set selection
+~~~~~~~~~~~~~~~~~~~~~~~
 option:-p ['PID'[,'PID']...], option:--pid[='PID'[,'PID']...]::
-    Untrack process ID values 'PID' (remove them from the process ID
-    inclusion set).
+    For each 'PID' argument, remove 'PID' from the process ID inclusion
+    set of the selected tracing session and domain.
 +
-'PID' is the process ID attribute of a process as seen from the _root
-PID namespace_ (see man:pid_namespaces(7)). It can only be used with
-the option:--kernel domain option.
+'PID' is the process ID attribute of a process as seen from the root
+PID namespace (see man:pid_namespaces(7)).
 +
-The 'PID' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
 option:--vpid[='VPID'[,'VPID']...]::
-    Untrack virtual process ID values 'VPID' (remove them from the
-    virtual process ID inclusion set).
+    For each 'VPID' argument, remove 'VPID' from the virtual process ID
+    inclusion set of the selected tracing session and domain.
 +
 'VPID' is the virtual process ID attribute of a process as seen from
-the _PID namespace_ of the process (see man:pid_namespaces(7)).
-+
-The 'VPID' argument must be omitted when also using the option:--all
-option.
+the PID namespace of the process (see man:pid_namespaces(7)).
 
 option:--uid[='USER'[,'USER']...]::
-    Untrack user ID process attribute values 'USER' (remove them from
-    the user ID inclusion set).
+    For each 'USER' argument, remove 'USER' from the user ID inclusion
+    set of the selected tracing session and domain.
++
+'USER' is either:
 +
-'USER' is the real user ID (see man:getuid(3)) of a process as seen
-from the _root user namespace_ (see man:user_namespaces(7)). It can
-only be used with the option:--kernel domain option.
+--
+* The real user ID (see man:getuid(3)) of a process as seen
+  from the root user namespace (see man:user_namespaces(7)).
+
+* A user name.
 +
-'USER' can also be a user name. No name resolution is performed;
-'USER' will be matched against the names in the inclusion set.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the user name resolution on removal from the user ID inclusion set.
+--
 +
-The 'USER' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
-option:--vuid[='USER'[,'USER']...]::
-    Untrack virtual user ID process attribute values 'USER' (remove
-    them from the virtual user ID inclusion set).
+option:--vuid[='VUSER'[,'VUSER']...]::
+    For each 'VUSER' argument, remove 'VUSER' from the virtual user ID
+    inclusion set of the selected tracing session and domain.
 +
-'USER' is the real user ID (see man:getuid(3)) of a process as seen
-from the _user namespace_ of the process (see man:user_namespaces(7)).
+'VUSER' is either:
 +
-'USER' can also be a user name. No name resolution is performed;
-'USER' will be matched against the names in the inclusion set.
+--
+* The real user ID (see man:getuid(3)) of a process as seen
+  from the user namespace (see man:user_namespaces(7)).
+
+* A user name.
 +
-The 'USER' argument must be omitted when also using the option:--all
-option.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the user name resolution on removal from the virtual user ID inclusion
+set.
+--
 
 option:--gid[='GROUP'[,'GROUP']...]::
-    Untrack group ID process attribute values 'GROUP' (remove them
-    from the group ID inclusion set).
+    For each 'GROUP' argument, remove 'GROUP' from the group ID
+    inclusion set of the selected tracing session and domain.
++
+'GROUP' is either:
 +
-'GROUP' is the real group ID (see man:getgid(3)) of a process as seen
-from the _root user namespace_ (see man:user_namespaces(7)). It can
-only be used with the option:--kernel domain option.
+--
+* The real group ID (see man:getgid(3)) of a process as seen from the
+  root user namespace (see man:user_namespaces(7)).
+
+* A group name.
 +
-'GROUP' can also be a group name. No name resolution is performed;
-'GROUP' will be matched against the names in the inclusion set.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the group name resolution on removal from the group ID inclusion set.
+--
 +
-The 'GROUP' argument must be omitted when also using the option:--all
-option.
+Only available with option:--kernel option.
 
-option:--vgid[='GROUP'[,'GROUP']...]::
-    Untrack virtual group ID process attribute values 'GROUP'(remove
-    them from the virtual group ID inclusion set).
+option:--vgid[='VGROUP'[,'VGROUP']...]::
+    For each 'VGROUP' argument, remove 'VGROUP' from the virtual group
+    ID inclusion set of the selected tracing session and domain.
 +
-'GROUP' is the real group ID (see man:getgid(3)) of a process as seen
-from the _user namespace_ of the process (see man:user_namespaces(7)).
+'VGROUP' is either:
 +
-'GROUP' can also be a group name. No name resolution is performed;
-'GROUP' will be matched against the names in the inclusion set.
+--
+* The real group ID (see man:getgid(3)) of a process as seen
+  from the user namespace (see man:user_namespaces(7)).
+
+* A group name.
 +
-The 'GROUP' argument must be omitted when also using the option:--all
-option.
+The connected LTTng session daemon (see man:lttng-sessiond(8)) performs
+the group name resolution on removal from the virtual group ID inclusion
+set.
+--
+
+
+Inclusion set operation
+~~~~~~~~~~~~~~~~~~~~~~~
+option:-a, option:--all::
+    With one or more empty option:--pid, option:--vpid, option:--uid,
+    option:--vuid, option:--gid, and option:--vgid options: clear the
+    selected inclusion sets.
 
 
 include::common-cmd-help-options.txt[]
@@ -230,5 +244,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:lttng-track(1),
-man:lttng(1)
+man:lttng(1),
+man:lttng-concepts(7),
+man:lttng-track(1)
index 6874aad3cd27545821334e844b4e43fb4cac1658..afb39fe0a349869683fefd0632015459eb915091 100644 (file)
@@ -1,6 +1,6 @@
 lttng-view(1)
 =============
-:revdate: 21 April 2021
+:revdate: 29 April 2021
 
 
 NAME
@@ -27,9 +27,8 @@ With the option:--trace-path='DIR' option::
     The local file system directory 'DIR'.
 
 Otherwise::
-    The current tracing session (see man:lttng-create(1) and
-    man:lttng-set-session(1) to learn more about the current tracing
-    session).
+    The current tracing session (see man:concepts(1) to learn more about
+    the current tracing session).
 
 With the option:--session option or without the option:--trace-path
 option, the mode of the selected tracing session may :not: be network
index 06f3a362ad11a409061ee41011b06ff759464e8d..1b5d5ee31c996a699ad4024c176f81e5520e3b4f 100644 (file)
@@ -1,17 +1,17 @@
 lttng(1)
 ========
-:revdate: 16 October 2019
+:revdate: 3 May 2021
 
 
 NAME
 ----
-lttng - LTTng 2 tracer control command-line tool
+lttng - Control LTTng tracing
 
 
 SYNOPSIS
 --------
 [verse]
-*lttng* [option:--group='GROUP'] [option:--mi=xml] [option:--no-sessiond | option:--sessiond-path='PATH']
+*lttng* [option:--group='GROUP'] [option:--mi=**xml**] [option:--no-sessiond | option:--sessiond-path='PATH']
       [option:--quiet | option:-verbose...] '<<commands,COMMAND>>' ['COMMAND OPTIONS']
 
 
@@ -24,7 +24,7 @@ with the LTTng control library (`liblttng-ctl`), sends commands to a
 listening LTTng session daemon (man:lttng-sessiond(8)). A session
 daemon:
 
-* Manages tracing sessions (see man:lttng-create(1) to learn more
+* Manages tracing sessions (see man:lttng-concepts(7) to learn more
   about tracing sessions).
 
 * Controls the various components (like tracers and consumer daemons) of
@@ -41,6 +41,12 @@ daemon with the option:--no-sessiond option.
 NOTE: The LTTng project recommends that you start the session daemon at
 boot time for stable and long-term tracing.
 
+See man:lttng-concepts(7) to learn more about the foundational concepts
+of LTTng.
+
+The `lttng` tool offers a subcommand-based command-line interface. The
+<<commands,COMMANDS>> section below lists the available commands.
+
 
 Session daemon connection
 ~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -80,9 +86,9 @@ Without the nloption:--group option of the root session daemon::
     `tracing`
 
 LTTng-instrumented user applications automatically register to both the
-root session daemon and the user session daemon. This makes it possible
-for both session daemons to list the available traceable applications
-and known instrumentation points (see man:lttng-list(1)).
+root and user session daemons. This makes it possible for both session
+daemons to list the available instrumented applications and their
+instrumentation points (see man:lttng-list(1)).
 
 
 OPTIONS
@@ -244,6 +250,6 @@ include::common-cmd-footer.txt[]
 
 SEE ALSO
 --------
-man:babeltrace2(1),
+man:lttng-concepts(7)
 man:lttng-relayd(8),
 man:lttng-sessiond(8)
This page took 0.102485 seconds and 4 git commands to generate.