12.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.