Project News: DTrace

[ Project Home  |  News  |  Downloads  |  Docs  |  Mailing Lists  |  Source Control  |  Issues ]


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
   more practical.
 - 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
   values again.
 - 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.