Project News: DTrace
2018.02.14: DTrace userspace 0.6.2, libdtrace-ctf 0.7.0
All RPMs are available on the Unbreakable Linux Network.
Packaging changes in DTrace 0.6.2:
- The DTrace headers in /usr/include/linux/dtrace were formerly provided by the
dtrace-modules-shared-headers package. They are now pulled in from the
kernel-uek-devel package in /usr/src/kernels at dtrace-utils package build
time and shipped out into the dtrace-utils-devel package.
- libdtrace-ctf 0.7 or above is now required.
- CTF type information can now be provided in an archive located at
/lib/modules/$(uname -r)/kernel/vmlinux.ctfa, cutting startup time when all
types referenced are found in the kernel tree rather than in out-of-tree
New features in DTrace 0.6.2:
- A new llquantize() aggregation, providing log/linear results.
llquantize(expression, log base, lower exponent, upper exponent, step,
- The tracemem() action has gained a third argument, the number of bytes
to trace: unlike the second argument, which must be a constant, the
third argument can be an arbitrary D expression, which can be used
to limit a larger second argument to a suitable value. This brings it
into parity with tracemem() on Solaris.
- The lockstat provider is implemented.
Bugfixes in DTrace 0.6.2:
- dtrace_sync() is drastically faster: setup and teardown of large numbers of
probes without latency problems and watchdog timer firings is now much
- The error message given when D argument counts were wrong was itself
often wrong or confusing.
- Fixed a segfault at shutdown time if grabbed processes die at precisely
the wrong time.
- Structure and union members in the kernel with the same name as D keywords
can now be referenced: mostly, this means you can get at members named
- lquantize() no longer truncates its value to 32 bits.
- dtrace_update() now merges module address ranges better.
- Fix some places where sleeping inside RCU read critical sections or
atomic context could happen (module provide, profile/tick providers,
and more general probe and state setup/teardown code).
- After one release without it, the walltimestamp variable reports useful
- One place where failure to allocate memory (for ECBs) could crash the kernel
has been fixed.
Build-time changes in DTrace 0.6.2:
- A new 'make ctf' target in the kernel tree, for generating the vmlinux.ctfa
archive mentioned above: it is no longer linked into in-tree modules.
The old CONFIG_DT_DISABLE_CTF option is thus removed, as is the ctf.ko module.
- You can no longer build CTF as root.
- Kernel CTF type generation now understands the DWARF generated by GCC 6; one
more problem with representation of bitfields is fixed; and one sort of
painfully manually-maintained type-related blacklist is now automated away.
- Some unused variable warnings in the io provider are squashed.