[RELEASE] LTTng modules 2.8.0-rc1 (Linux kernel tracer)

From: Mathieu Desnoyers
Date: Fri Mar 18 2016 - 19:11:08 EST


Hi,

We announce the first LTTng 2.8 - "Isseki Nicho" release candidate.
LTTng modules is a Linux kernel tracer.

The "Isseki Nicho" LTTng release name is a microbrew beer, following
our usual theme.

Its description:

The result of a collaboration between "Dieu du Ciel!" and Nagano-based
"Shiga Kogen", Isseki Nicho is a strong Imperial Dark Saison offering a
rich roasted malt flavor combined with a complex fruity finish typical
of Saison yeasts.

Here are the new major features included in this release:

--- Real-Time Contexts ---

The new "interruptible", "preemptible", "need_reschedule" and
Preempt-RT specific "migratable" contexts can be specified with the
lttng add-context command. It allows tracing those states for the
traced thread.


--- Built-in LTTng modules ---

It is now possible to build LTTng modules into your Linux kernel
image rather than having them as kernel modules. To do so, follow
this documentation:

https://github.com/lttng/lttng-modules/blob/master/README.md#kernel-built-in-support


--- Instrumentation updates ---

- The ARM64 architecture is now supported,
- x86 page faults are now available,
- x86 irq_vectors are now available,
- Supports all stable Linux kernels from 2.6.36 to 4.5, as well as currently
maintained Preempt-RT kernels (4.4.4-rt11 4.1.19-rt22 4.0.8-rt6 3.18.28-rt28
3.14.64-rt67 3.12.56-rt76 3.10.100-rt110 3.4.110-rt140 3.2.78-rt113).


--- Clock plugin support ---

A clock plugin modules can now be loaded to override the clock source used
by lttng-modules. It can be useful in combination with custom clock
source hardware.


--- Metadata Regeneration ---

A number of users have been using LTTng to trace embedded systems,
which often boot with an unset clock, before any NTP correction could
occur. Since the wall-time would be sampled before any NTP correction,
viewers would generally show traces as having been recorded at an
incorrect point in time.

This new command, lttng metadata regenerate, forces LTTng to resample
the current wall-time to determine an appropriate offset and
regenerate a trace's metadata.

For more information on this command and its limitations, please refer
to lttng-metadata(1).


--- Discarded Events and Lost Packets Statistics ---

This release adds discarded events and lost packets accounting which
allows the LTTng client to print a warning when the tracer was forced
to discard events or overwrite packets. The warnings take the
following form:
[warning] 1234 events discarded, please refer to the documentation on
channel configuration.
or
[warning] 1234 packets, please refer to the documentation on channel
configuration.

We have decided to add these warnings since a growing number of users
have been running analyses based on traces, the result of which may be
unreliable when events or packets are dropped.

A new packet sequence number was also added to the trace's packet
context. This allows viewers to indicate lost packets when the
"overwrite" mode is being used. See the LTTng documentation for a
detailed explanation of discard and overwrite modes.

https://lttng.org/docs/#doc-channel-overwrite-mode-vs-discard-mode

We will cover all of these new features in depth in an upcoming post
on the official LTTng blog at lttng.org/blog in time for the final
release. The official documentation will also be updated to reflect
the addition of these new features.

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

Project website: http://lttng.org
Documentation: http://lttng.org/docs
Download link: http://lttng.org/download

Changelog:

2016-03-18 (Awkward Moments Day) LTTng modules 2.8.0-rc1
* Bump minor tracer ABI version
* Fix: build against out-of-tree kernel build
* probes/Kbuild: remove upper level header path
* Move leftover relative include paths to system paths
* syscall instrumentation: use system headers
* tracepoint event instrumentation: use system headers
* Use system include path in wrappers
* libs: use system include paths
* Use system header paths in core implementation files
* Use system include paths in root directory headers
* Use system include paths in probes
* Update gitignore
* Use system include paths in lttng-types.h
* Use system include paths in lttng-tracepoint-event-impl.h
* Use system include path in probes/define_trace.h
* Use system include paths in probes/lttng-tracepoint-event-impl.h
* Rename probes/lttng-events.h to probes/lttng-tracepoint-event-impl.h
* Add makefile directory to include path
* Fix: event ctx get size should be after chan ctx
* Fix: filter interpreter with userspace strings
* Fix: rename kvm x86 TRACE_SYSTEM to avoid name clash
* Fix: format address fields as hexadecimal
* PowerPC-64 ABIv1: add build error if KALLSYMS_ALL is missing
* Fix: system call instrumentation overrides
* Fix: page_alloc wrapper incorrect parenthesis
* Fix: system call tracing for arm-64 compat !CONFIG_UID16
* Fix: add struct user_msghdr forward declaration for older kernels
* Cleanup: Remove unused lttng-types module
* Fix: add missing versions and init call for page_alloc wrapper
* Fix: Define lttng-tracer metadata only once
* Fix: Add CONFIG_LTTNG to modules_install target
* Fix: Use kbuild env instead of a custom var KERNELDIR
* Update clock offset comment
* clock offset: print negative value in metadata
* Fix: handle negative clock offset
* Fix: sched instrumentation for 4.1-rt11
* Add RT patch version macros
* Expect filter context identifiers starting with $ctx.
* ARM64: wire up compat system calls
* Add support for arm64 syscalls
* Fix: Ubuntu kernel range for block_rq_complete
* Fix: Ubuntu kernel range for mm_page_alloc_extfrag
* Fix: update vmscan instrumentation for kernel 4.5
* Fix: check reference counts for overflow
* Fix: RHEL 7.2 scsi instrumentation
* Fix: RHEL 7.2 kvm instrumentation
* Kconfig: describe both module and in-kernel compilation options
* Add comments and indentation to Makefile
* Add support for built-in kernel build
* Rename sub makefiles to Kbuild
* Cleanup sub makefiles
* Make goals configurable with CONFIG_LTTNG
* Fix: Use generic raw_irqs_disabled_flags
* Fix: Use MAX_RT_PRIO offset in sched_wakeup_template
* Fix: update sched instrumentation for kernel 4.4.0
* Bump version number for development branch
* Fix: interruptible context: reversed logic
* Contexts for RT debugging
* Fix: instrumentation: v4lv2 missing include
* Fix: header size larger than 256 bytes
* Instrument x86 page faults
* Fix: irq_vectors TRACE_SYSTEM name
* Instrument x86_irq_vectors
* Fix: tracepoint listing misses last loaded probe
* Fix: lttng trace-clock needs to disable preemption
* Tracepoint event: add "TP_code_post()"
* Implement array and sequence bitfields
* Fix: kmem: add mm.h include
* Add page frame number (pfn) to kmem page events
* Use pfn rather than struct page in ring buffer array
* Implement clock plugin support
* Command to regenerate the metadata of a session
* Fix: writeback instrumentation update for 4.3 Linux kernel
* Fix: update sched wakeup instrumentation for 4.3 kernel
* Fix: lttng-test build failure for kernels < 3.0
* Use 3.18 syscall instrumentation for MIPS32
* Update the MIPS32 syscall instrumentation to 3.18
* Fix: Move pipe override to the arch specific pointers_override.h
* Implement lttng test module
* Cleanup: remove logically dead code
* Fix: filter validator use after free
* Fix: use after free in channel release
* Fix: non-enabler events should be disabled by default
* Fix: build failure on 2.6.36
* Cleanup: split bdi_dirty_ratelimit with ifdef into separate macros
* Fix: writeback instrumentation for 4.2 kernels
* Fix: mm_page_alloc_extfrag instrumentation for kernel 3.18.10
* Add stream instance id to the packet header
* Add a packet sequence number
* Fix: kmem probe with Ubuntu 3.13 kernels
* Fix: disable kvm probe if lapic.h isn't found
* Fix: timer instrumentation for 4.2 kernels
* Fix: ext4 instrumentation for 4.2 kernels
* Fix: kvm instrumentation for 4.2 kernels
* Fix: allow LTTng to be built within kernel tree

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com