After having made numerous attempts at having the Systemtap's project comparison corrected to reflect the reality, that were ignored, I recreated chart here with corrections and added a few more points of comparison.

Systemtap vs DTrace comparison

Disclaimer:This chart is a copy of the chart found at Systemtap vs Dtrace comparison most of the Systemtap collumn was copied verbatim, with minor changes to existing data. In an attempt to be fare to the Systemtap project. No guarantee of correctness or accuracy of the systemtap data is given. Your milage may vary.


Systemtap

DTrace

License

GPL

CDDL

Operating System Support

Linux

Solaris, FreeBSD, OSX, netBSD (is planned)

Processor Support

Wide (as per kprobes: x86, x86_64, ppc64, ia64, s390, sparc?, ...)

X86, x86_64, ultrasparc, ppc?

kernel coupling ("upstream" lock-step)

Little

Not an issue for Solaris (built in, full support) Lot

Core Developer s

IBM, RedHat. Some community support

Sun, Apple, Freebsd, community support

Development began

2005

2001

Ongoing Development

Rapid

Mature, normal rate

Target audience

Development. Users, sysadmins

Kernel developers, userland developers, sysadmins, users

Actual audience

Kernel Developers

Kernel developers, userland developers, sysadmins, users

Target usage

Debugging, tracing, profiling

Debugging, tracing, profiling

Language



Style

Scripting

Scripting

Full control structures

Yes

No ((conditionals using ? : )

Variable typing

Implicit, infered

Implicit

Complex report generation

Yes

Yes

Scalable aggregates

Yes

Yes

Thread-local variables

Yes (from first principles via tid-indexed auxiliary arrays)

Yes

Speculative tracing

made redundant by available control structures

Yes

Binary tracing (sends binary formatted packets from kernel to userland

Yes

? (unimportant to the user)

early boot tracing

Not yet

Yes

Probe execution

Optimized native code

Interpreted bytecodes

probing capability



Number of possible probe points

Unlimited (currently limited to every line in the kernel, no userland probles or static probe points by default)

Unlimited (50,000 kernel and static probe points, probe any line of userspace code)

Maximum tested probing points

50,000 active probe test fails

500,000 active probe test works as expected.

probe arbitrary points in code (function entry, exit, interior)

Yes ( currently limited to kernel space)

Yes (kernel limited to static probe points and kernel function entry and exit, userland can probe any line of code)

probe dynamically loaded kernel objects

Yes

Yes

Probe dynamically loaded userland libraries

N/A ( no userland probes)

Yes

probe user-space programs

Soon

Yes

statically inserted probe points, kernel side

Yes (STP_MARK)

Yes (DTRACE_PROBE)

statically inserted probe points, user side, e.g. interpretive languages

Not yet

Yes (DTRACE_PROBE)

timer-based probing

Yes

Yes

hardware performance counter based probing

Coming soon

Coming soon

Safety



time-limited probe handler execution

Yes (statement counting)

Yes (implied by language restriction)

non-blocking, atomic probe handlers

Yes ( may be over ridden, at the cost of safety)

Yes

space-limited execution

Yes

Yes

division-by-zero protection

Yes

Yes

null pointer dereferencing protection

Yes

Yes

means available to bypass protection for advanced users

yes (guru mode, embedded-C)

limited (predefined "destructive" actions available)

translate-time error checks

Many

Many

run-time error checks performed by

automatically generated C code

Byte code interpreter

use by unprivileged users

for now, sudo all-or-nothing

graduated access by privilege level

Actual Usage:



Number of active users

hundreds

10's of thousands

Tested in enterprise production enviroment

Extermely limited

Fully tested and trusted

Number of real world problems solved

few

1000's

















Links

http://sources.redhat.com/systemtap/wiki/SystemtapDtraceComparison Original comparison
http://docs.sun.com/app/docs/doc/817-6223 Dtrace Guide
http://learningsolaris.com/docs/dtrace_tips_public.pdf Advanced Dtrace guide
DTrace USENIX paper
What is DTrace
DTrace Mailing list chart discuss thread
Dtrace Mailing list chart discuss thread #2
Sytemtap mailing list thread