[lttng-dev] [RELEASE] LTTng-Tools 2.10.0 - KeKriek

Jérémie Galarneau jeremie.galarneau at efficios.com
Tue Aug 1 22:30:12 UTC 2017

Hi everyone!

Today marks the release of LTTng 2.10 - "KeKriek".

This release is named after a sour mashed golden wheat ale from
the Dunham microbrewery.

--- LTTng-UST Blocking Mode ---

A long-awaited "blocking" mode for LTTng-UST has been implemented.
In this mode, the tracer blocks the application at the tracing point when
buffers are full (only in "discard mode tracing") and will wait until a
user-specified timeout is reached or until enough space is available in
the tracing buffer to save the event before continuing.

This mode only applies to applications launched with the
variable set to a non-zero value. See lttng-ust(3) for more

--- Multiple wildcard support in event rules' instrumentation point
    names and filter strings ---

Before LTTng 2.10, you could use a wildcard at the _end_ of
instrumentation point names and filter strings when you created an
event rule:

    lttng enable-event --kernel 'sched_*'

    lttng enable-event --userspace my_app:'*' --filter='my_field == "user_*"'

Starting from LTTng 2.10, you can use the `*` wildcard character
anywhere in those strings, and not only at the end:

    lttng enable-event --kernel 'x86_*_local_timer_*' \
                       --filter='name == "*a*b*c*d*e" && count >= 23'

    lttng enable-event --userspace '*_my_org:*msg*'

You can also use more than one `*` in exclusion names:

    lttng enable-event --userspace '*_my_org:*msg*' \

We remind you that a `*` wildcard character matches zero or more
characters. It has the same role as `*` in shells.

You must escape literal `*` characters with `\`. For example:

    lttng enable-event --userspace '*_my_org:\*msg*'

creates an event rule which matches user space tracepoints of which the
name is zero or more characters followed by `_my_org:*msg` (literally)
followed by zero or more characters.

--- Notification and overload API ---

A new trigger and notification API has been added to the lttng-ctl
library. This new subsystem allows you to register triggers which
will emit a notification whenever a given condition is reached.

The first conditions introduced as part of this release are buffer
usage conditions. These conditions allow you to be notified
whenever buffers a filled or emptied beyond a given level.

For instance, a client can enable the tracing of a given group of
events, and register a condition to be notified whenever buffers
are filled beyond 80% of their capacity.

Upon the reception of this notification, you can choose to disable
a certain number of events in order to lower the event tracing
bandwidth and find the subset of events with which your
system can keep up. This allows the implementation of a tracing
overload protection.

--- Embedded man pages ---

You can now embed the whole textual LTTng-tools man pages into the
executables at build time with the --enable-embedded-help configuration
option. Thanks to this option, you don't need the AsciiDoc and xmlto
tools at build time, and a manual pager at run time (/usr/bin/man for
most of us), to get access to this documentation.

The official documentation has been updated to reflect the addition of
these new features in time for the final release.

For more information on new features introduced in this version,
see: http://lttng.org/docs/v2.10/#doc-whats-new

The 2.10.0 release marks the end of life for the old stable-2.8 branches.
There will be one last stable-2.8 release of lttng-tools, after which it will
become unsupported.

2017-08-01 lttng-tools 2.10.0 (World Wide Web Day)
        * lttng enable-channel: disallow --overwrite and --blocking-timeout
        * lttng-enable-channel(1): reword --blocking-timeout, document
in description
        * lttng enable-channel: --blocking-timeout opt.: use `inf` instead of -1
        * Cleanup: remove unused internal structure
        * Cleanup: remove unnecessary extern qualifier
        * Docs: document the trigger API
        * Docs: document the notification API
        * Docs: document the notification channel API
        * Docs: document the evaluation API
        * Docs: document the lttng_condition API
        * Docs: document the lttng_buffer_usage condition API
        * Docs: document the lttng_action_notify action type
        * Docs: document the lttng_action API
        * Fix: ambiguous ownership of kernel context by multiple channels
        * lttng-enable-channel(1): move --output description to
maintain A-Z ordering
        * lttng-enable-channel(1): document --monitor-timer
        * Prettify channel listing
        * Use pipe instead of eventfd() for notification command queue
        * Cleanup: useless reset of ret to zero
        * Fix: ret is never used on error_open code path
        * Fix: use error code path instead of break when errors happen
before execl
        * Cleanup: ignore useless check of execl() return value
        * Fix: wrong variable assignment on error
        * Cleanup: remove dead increment of pointer
        * Fix: missing error handling in use of print_tabs()
        * Cleanup: functions shall have a single exit point
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Cleanup: dead assignment
        * Fix: ret is used instead or err to set an error code
        * Cleanup: remove dead assignment
        * Cleanup: remove dead assignment
        * Fix: report error using fd instead of ret
        * lttng-enable-channel(1): reword and fix style of
--blocking-timeout description
        * Fix: doc/man: use a single XSL file and match local names
        * Tests: rework select_poll_epoll test to improve verbosity on failure
        * Only print relevant session statistics on stop
        * Fix: NULL passed to memcpy in error path
        * Only print relevant session statistics in channel listing
        * Uniformize the printing of units in session listing
        * Fix: lost packet accounting always lost on snapshot
        * Fix: report error on session listing
        * Tests: don't assume a 4K page size in test_notification
        * Fix live-comm: merge TCP socket write-write sequence in a single write
        * Docs: move notification thread documentation to header
        * Docs: grammar fix in comment
        * Fix: evaluate condition/trigger on subscription
        * Test: Trigger conditions is evaluated on subscription
        * save/load: add blocking_timeout attribute to channel
        * Introduce monitor_timer_interval to session configuration schema
        * Test: Reduce scope of variables used in multi app notification test
        * Hide internal buffer-view symbols
        * Hide internal session configuration symbols
        * Hide internal dynamic-buffer symbols
        * Hide internal string-utils symbols
        * Typo: occured -> occurred
        * Fix: join consumer timer thread
        * Cleanup: use CMM accessors for consumer_quit variable

As always, please report any issue you may encounter to bugs.lttng.org
or on this mailing list.

Project website: https://lttng.org

Download link:

GPG sig:

Jérémie Galarneau
EfficiOS Inc.

More information about the lttng-dev mailing list