From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeremie.galarneau@efficios.com (=?UTF-8?Q?J=C3=A9r=C3=A9mie_Galarneau?=) Date: Fri, 25 Sep 2015 01:11:14 -0400 Subject: [lttng-dev] =?utf-8?q?=5BRELEASE=5D_LTTng-Tools_2=2E7=2E0_-_Herbe?= =?utf-8?b?IMOgIETDqXRvdXJuZQ==?= Message-ID: Hi everyone! I am proud to announce the availability of LTTng-Tools 2.7 - "Herbe ? D?tourne". As is tradition, this release bears the codename of a Qu?bec-brewed beer. --- Herbe ? D?tourne --- Brewed with unrestrained amounts of Citra hop, the Herbe ? D?tourne is a fantastic New World Tripel brewed by "Dieu du Ciel!". Aromas of mango, cantaloupe melon and passion fruit, combined with a controlled bitter finish, unite to make this smooth golden-orange beer stand apart. Since the second release candidate was released last week, a handful of minor fixes have made their way into the stable-2.7 branch. 2015-09-24 lttng-tools 2.7.0 (National Punctuation Day) * Fix: Handle EINTR of waipid in run-as worker * Fix: Handle EINTR of waitpid when spawning a session daemon * Add a LOG() macro which handles dynamic severity levels * Fix: tests: support systems where PAGE_SIZE is not 4096 * Test: jul/log4j: use -a instead of '*' to disable all events * Reword warning on event disable * Clean-up: Remove unused test launchers * Help: add -j -l -p option to help string * man: update disable-event section * Use empty event name on disable -a for ust and agent domain * Fix: disable kernel event based on name and event type * Tests: Clean-up test-crash on SIGTERM and SIGINT * Fix: Possible dereference of null pointers * Fix: Break out of loop when searching for a domain's agent * Fix: int printed as uint * Fix: add subdir-objects to Makefile.am * Fix: tests: skip UST perf tests if not root We will be releasing a blog post to showcase LTTng 2.7's new features and updating the official documentation within the next few days. In the meantime, here is a quick rundown of the new features! --- Process (PID) Tracker --- The new "track" and "untrack" commands allows the tracking of events associated with specific PIDs, both in user space and kernel space. For example, the following commands may be used to track all user space events of PID "1234": $ lttng create my_session $ lttng track --userspace --pid 1234 $ lttng enable-event --userspace --all $ lttng start --- Python Logging Support --- Following in the footsteps of the Java Util Logging and Log4J logging backend support, which were introduced as part of LTTng 2.4 and LTTng 2.6 respectively, this new version adds support for the Python logging backend. This means that logging statements emitted by the Python logging module can now be collected as part of user space traces by enabling events from the "python" domain. $ lttng create my_session $ lttng enable-event --python --all $ lttng start The lttngust Python module is provided as part of LTTng-UST 2.7. https://github.com/lttng/lttng-ust/tree/master/liblttng-ust-python-agent --- Kernel tracer filtering support --- While LTTng-UST has provided support for event filtering for a long time, it was not possible to perform kernel-side event filtering until now. As of this version, kernel space filters can be used in the same way as user space filters. For instance, to trace only read() syscalls requesting more than 100 bytes: $ lttng create my_session $ lttng enable-event --kernel --syscall read --filter "count > 100" $ lttng start --- Kernel tracer wildcard support --- Support for wildcards in event names is another feature that has been brought from the user space tracer to the kernel tracer. This means that groups of kernel space events can be enabled at once using the wildcard notation. The tracing of all block device or scheduling events can be enabled using a single command: $ lttng enable-event --kernel block* or $ lttng enable-event --kernel sched* --- File-backed user space buffers --- This new LTTng-UST feature allows the mapping of ring buffers onto filesystems. This proves useful in combination with pramfs or DAX+pmem (Linux kernels 4.1+ for DAX and 4.2+ for pmem) to store tracer ring buffers in persistent memory upon an unexpected system reboot. These buffers can be salvaged and converted to regular CTF traces using the newly introduced lttng-crash utility to see the events that led to a crash. --- Support for clock and getcpu plugins --- In the interest of keeping LTTng as unintrusive as possible, LTTng 2.7 introduces support for platform-specific plug-ins providing custom implementations of getcpu() (user space) and clock sources for both kernel and user space tracers. getcpu override plugins can prove useful in cases where direct hardware access is available for architecture-specific registers storing the CPU number, and where those should be used instead of the Linux kernel sched_getcpu() vDSO/syscall. clock override plugins, which may be implemented as shared objects (user space) or kernel modules (kernel space) may prove userful in cases where direct hardware access to architecture-specific clocks is available, and when it should be used in place of the Linux kernel monotonic clock. --- tracelog() support --- LTTng-UST 2.7 provides a number of facilities to smoothen the transition of applications from logging to tracing in the form of tracelog() tracepoints. LTTng-UST 2.7's announcement covers this feature in more detail: http://lists.lttng.org/pipermail/lttng-dev/2015-July/024757.html 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: https://lttng.org/files/lttng-tools/lttng-tools-2.7.0.tar.bz2 GPG sig: https://lttng.org/files/lttng-tools/lttng-tools-2.7.0.tar.bz2.asc Looking forward to your feedback! J?r?mie -- J?r?mie Galarneau EfficiOS Inc. http://www.efficios.com