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.