13.3 Differences Between DTrace on Oracle Linux and Oracle Solaris

Note the following main differences that exist in the implementation of DTrace on Oracle Linux relative to Oracle Solaris.

  • The following providers are available in the Oracle Linux implementation of DTrace.

    Provider

    Kernel Module

    Description

    dtrace

    dtrace

    Provides probes that relate to DTrace itself, such as BEGIN, ERROR, and END. You can use these probes to initialize DTrace's state before tracing begins, process its state after tracing has completed, and handle unexpected execution errors in other probes.

    fasttrap

    fasttrap

    Supports user-space tracing of DTrace-enabled applications.

    io

    sdt

    Provides probes that relate to data input and output. The io provider enables quick exploration of behavior observed through I/O monitoring tools such as iostat.

    proc

    sdt

    Provides probes for monitoring process creation and termination, LWP creation and termination, execution of new programs, and signal handling.

    profile

    profile

    Provides probes associated with an interrupt that fires at a fixed, specified time interval. These probes are associated with the asynchronous interrupt event rather than with any particular point of execution. You can use these probes to sample some aspect of a system's state.

    sched

    sdt

    Provides probes related to CPU scheduling. Because CPUs are the one resource that all threads must consume, the sched provider is very useful for understanding systemic behavior.

    syscall

    systrace

    Provides probes at the entry to and return from every system call. Because system calls are the primary interface between user-level applications and the operating system kernel, these probes can offer you an insight into the interaction between applications and the system.

    Other providers, such as the pid provider, the Function Boundary Tracing (fbt) provider, and the providers for the network protocols (ip, iscsi, nfsv3, nfsv4, srp, tcp, and udp), have not yet been implemented.

  • Solaris-specific features such as projects, zones, tasks, contracts, and message queues are not supported.

  • The names of kernel probes are specific to the Linux kernel.

  • The -Xa-Xc, and -Xt options to dtrace all include the option -std=gnu99 (conformance with 1999 C standard including GNU extensions) when invoking the C preprocessor (cpp) on D programs. The -Xs option includes the option -traditional-cpp (conformance with K&R C).

  • Anonymous tracing is not supported (-a and -A options to dtrace).

  • The 32-bit data model is not supported (-32 option to dtrace).

  • Various definitions in the <dtrace.h> header file for flags, types, structures, and function prototypes reflect intrinsic differences between the implementation of Oracle Solaris and Oracle Linux.

  • SDT probes do not work in IRQ context. As a result, the proc:::signal-discard probe does not fire if a signal that is sent as event notification for a POSIX timer expiration should be discarded.

See the INCOMPATIBILITIES file in /usr/share/doc/dtrace-DTrace_version for more information.