[DTrace-devel] "proof of concept" for systemwide USDT

eugene.loh at oracle.com eugene.loh at oracle.com
Tue Jun 4 18:10:59 UTC 2024


This series of patches illustrates a proof of concept for systemwide
USDT.  There is much cleanup needed, but first I would like buy in
for the various implementation decisions.

With this patch series, one can specify wildcard probe descriptions
for pid and USDT probes.  For now, only processes that exist at the
time dtrace is launched will be picked up.  An underlying probe will
look up a firing pid in a new BPF map.  If there is an entry, the
associated PRID is returned, along with a bitmap indicating which
clauses to execute.

Since the PRID is no longer known for a clause when it is loaded into
the kernel -- specifically, a clause's EPID no longer specifies the
PRID -- we write the PRID into the output buffer.  This is the new
mechanism for the consumer to figure out which PRID to associate with
a tracing record it reads.

The major functionality missing is to be able to pick up new processes
(and drop old ones) as they start up (or terminate) during a dtrace
session.




More information about the DTrace-devel mailing list