Project News: DTrace
2016.01.22: DTrace userspace 0.5.1, kernel modules 0.5.1, libdtrace-ctf 0.5.0
All RPMs are available on the Unbreakable Linux Network.
New options in dtrace-utils 0.5.1:
- -xuseruid: On non-systemd systems (such as OL6), specify the user ID of
the first non-system user. (The default will normally be appropriate.)
Processes with uids below this, and which appear to truly be daemons, are
only ptrace()d if explicitly specified via dtrace -p or -c.
- -xsysslice: On systemd systems (such as OL7), specify the name of the
system slice. (The default will almost always be appropriate.)
Processes in this slice or the root slice are considered crucial system
daemons and only ptrace()d if explicitly specified, as above.
The systemd/non-systemd determination is made dynamically, so you can
switch init systems freely and everything should still work.
Performance improvements in dtrace-utils 0.5.1:
- dtrace(1) and libdtrace(1) startup speed is improved, both by avoiding a
filesystem walk by using the modules.order file to locate available kernel
modules, and by avoiding loading all kernel modules to resolve possible
types when unqualified probe names that cannot possibly be C identifiers are
seen (like 'tick-1sec'). When the disk cache is cold these changes speed up
startup by on the order of 2x.
Bugfixes in dtrace-modules 0.5.1:
- When copyout() or copyoutstr() is used in a D script, safety checks are now
enforced to protect against unprivileged memory accesses.
- The DTrace modules package no longer prevents automated kernel RPM removal
when the install limit is reached.
- It is now possible to access the envp and argv arrays in the psinfo for a
task using copyin(). This is the convention across DTrace-capable systems.
- Symbol resolution in non-ptraceable processes is improved.
- dtrace -p with an invalid PID now produces a sensible error message.
Changes to user-visible internals in dtrace-utils 0.5.1:
- Translator support for the UEK4 4.1 kernel.
- The DTRACE_DEBUG debugging option could intermingle debugging output in
limited ways when multiple threads were emitting debugging at once.