0.2.0 (Jan 25th, 2012)
Kernel release:
2.6.39-101.0.1.el6uek
This release brings DTrace for Linux to the 2.6.39 kernel, as an upgrade from the previous release based on 2.6.32.
New features:
-
The DTrace core and provider API now support meta-providers, a framework that provides multiple providers using a common implementation.
-
The Statically Defined Tracing (SDT) provider is implemented, providing in-kernel static probes. Some of the proc provider is implemented using this facility.
Bugfixes:
-
Syscall tracing of stub-based syscalls (such as fork, clone, exit, and sigreturn) now works.
-
Invalid memory accesses inside D scripts no longer cause oopses or panics.
-
Memory exhaustion inside D scripts no longer emits spurious oopses.
-
Several crash fixes.
-
Fixes to arithmetic inside aggregations, fixing quantize().
-
Improvements to the installed headers.
Internal changes:
-
The minimal cyclic implementation has been removed from the DTrace modules because it is now provided by an equivalent GPL implementation in the core kernel.
-
CPU core information is now maintained at the core kernel level.
-
Kernel and module code can now perform safe memory accesses by setting a flag in the CPU core information structure. If a memory access results in a Page Fault or General Protection Fault, the failure will be noted as a CPU fault, and execution will continue rather than causing a kernel panic.
-
Functionality that depends on walking the stack (determining stack depth, or collecting a backtrace) is now provided by a GPL implementation in the core kernel.
-
In the interest of consistency, a pseudo kernel module structure is created at the core kernel level, representing the main kernel image. This module structure makes it possible to represent all kernel-level objects equally. This structure provides a list of SDT probe locations in the core kernel.