[DTrace-devel] [PATCH v3 0/9] stapsdt provider: simple system-wide probing
Alan Maguire
alan.maguire at oracle.com
Tue Jan 13 16:51:23 UTC 2026
This series adds wildcard support to stapsdt probes to allow
tracing system-wide; this has caveats due to the way the kernel
implements probe addition. In essence, probes are added on a
per-inode basis (actually in the VMA associated with the inode)
so it is necessary to identify the file where probes are found.
Probes will fire for existing and new processes (the RFC incorrectly
said they will not work for existing binaries; they in fact do).
Patch 2 describes the approach; to facilitate systemwide tracing
we need to tell DTrace the name of the binary/library via either
using module absolute path (patch 1 updates parsing to support use
of a '/' in a module descriptor to faciliate this support) or an
module name; to expand this we then use [LD_LIBRARY_]PATH
to resolve the full path. ELF reading of the file and insertion
of probes then proceeds in a similar manner to per-pid tracing.
Patches 3-8 test various aspects of systemwide probes; basic
binary support, library support, listing support and is-enabled
probes support, and use of absolute paths.
Patch 9 updates docs to describe stapsdt wildcard support.
Changes since v2:
- support absolute paths (patch 1, 2)
- add tests for absolute paths (patch 4, 7)
- document systemwide probe support for listing/using absolute
paths (patch 9)
Changes since RFC:
- update documentation/commit messages to reflect that we also
catch existing programs/libraries when probes are enabled
- fixup provider name for wildcard probes to be 'provider*'
rather than using the confusing 'provider-1' since the
latter is the concatenation of probename and pid (-1 is
used to connote all pids)
- add test for is-enabled systemwide probes
Alan Maguire (9):
dt_lex: support '/' in probe descriptors
stapsdt provider: support systemwide probing
test: add systemwide stapsdt note test
test: add systemwide stapsdt note test using absolute path
test: add systemwide stapsdt note test for library
stapsdt: add test for listing systemwide probes in object
stapsdt: add test for listing systemwide probes in absolute path
object
stapsdt: add systemwide test for is-enabled probes
documentation: update stapsdt docs to describe wildcard support
.../reference/dtrace_providers_stapsdt.md | 54 +++++-
libdtrace/dt_lex.l | 2 +-
libdtrace/dt_pid.c | 177 ++++++++++++++----
libdtrace/dt_prov_uprobe.c | 17 +-
.../tst.stapsdt-notes-systemwide-abspath.r | 2 +
.../tst.stapsdt-notes-systemwide-abspath.sh | 51 +++++
.../tst.stapsdt-notes-systemwide-isenabled.r | 13 ++
.../tst.stapsdt-notes-systemwide-isenabled.sh | 177 ++++++++++++++++++
.../tst.stapsdt-notes-systemwide-l-abspath.sh | 48 +++++
.../usdt/tst.stapsdt-notes-systemwide-l.sh | 48 +++++
.../usdt/tst.stapsdt-notes-systemwide-lib.r | 14 ++
.../usdt/tst.stapsdt-notes-systemwide-lib.sh | 142 ++++++++++++++
...tst.stapsdt-notes-systemwide-lv-abspath.sh | 48 +++++
.../usdt/tst.stapsdt-notes-systemwide-lv.sh | 48 +++++
.../usdt/tst.stapsdt-notes-systemwide.r | 2 +
.../usdt/tst.stapsdt-notes-systemwide.sh | 51 +++++
16 files changed, 845 insertions(+), 49 deletions(-)
create mode 100644 test/unittest/usdt/tst.stapsdt-notes-systemwide-abspath.r
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-abspath.sh
create mode 100644 test/unittest/usdt/tst.stapsdt-notes-systemwide-isenabled.r
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-isenabled.sh
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-l-abspath.sh
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-l.sh
create mode 100644 test/unittest/usdt/tst.stapsdt-notes-systemwide-lib.r
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-lib.sh
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-lv-abspath.sh
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide-lv.sh
create mode 100644 test/unittest/usdt/tst.stapsdt-notes-systemwide.r
create mode 100755 test/unittest/usdt/tst.stapsdt-notes-systemwide.sh
--
2.43.5
More information about the DTrace-devel
mailing list