Second beta of DTrace for Linux
Oracle has released a second beta version of "DTrace for Oracle Linux". The Linux port of the tracing software that was originally developed for Solaris now implements a provider for SDT (Statically Defined Tracing), providing in-kernel static probes; the developers say that they have also fixed a number of bugs.
This version of DTrace (Dynamic Tracing Facility) requires the Linux 2.6.39-based version 2 of Oracle's "Unbreakable Enterprise Kernel", which is due to be part of Oracle Linux 6 and is currently still in its beta phase. Oracle says that the DTrace code is a work in progress, and that it is still considered a "technology preview". The company has also created a dedicated forum for users to discuss their experiences and provide feedback. On his blog, Oracle developer Wim Coekaerts has provided some background information and usage tips; previously, he announced the first beta shortly after it became known that Oracle was working on DTrace for Linux.
The kernel modules with which the DTrace userland software co-operates are distributed as an add-on kernel package; according to Coekaerts' announcement of the first beta, the source of those modules is available under the CDDL (Common Development and Distribution License). There is a debate about the extent to which this licence is compatible with the GPLv2, which is the Linux kernel's licence; many think that the CDDL and GPLv2 are incompatible, and therefore kernel-side support of DTrace currently has very little chance of becoming part of the official Linux kernel. This fact and the licensing issues are likely to prevent many distributors from including kernels that contain all the required DTrace components in their distributions by default.
Several initiatives in the Linux world have previously tried to create a widely-used Linux alternative to DTrace, which has a good reputation. For example, Red Hat tried to promote SystemTap, which is part of Red Hat Enterprise Linux (RHEL). However, the infrastructure required by the tracing software has never been fully integrated into the official Linux kernel because some of the kernel developers didn't like it. Over the past two or three years, the kernel developers have created new ways of monitoring what the kernel does – for example with Ftrace and Perf. In addition, some of the emails that have appeared on the kernel developer mailing list over the past few days indicate that, after years of development work, the Uprobes userspace tracing program may be integrated into Linux 3.4 or a subsequent version.
If Utrace is incorporated, the default kernel will offer all tracing features that are essential for performing run-time analyses of system processes using programs such as Systemtap. However, various other tracing solutions are also in circulation; a rough overview of these and some of their individual characteristics is available in the slides of a presentation given by Oracle employee Elena Zannoni at LinuxCon Europe 2011.