libstapsdt icon indicating copy to clipboard operation
libstapsdt copied to clipboard

Support systemwide probe firing, more tracers by adding a USDT probe to libstapsdt for probe firing

Open alan-maguire opened this issue 1 year ago • 2 comments

By adding a USDT probe for probe firing to libstapsdt itself, we allow all tracers (which do not already know how to get access to the memfd-based dynamic libraries that libstapsdt creates) that have USDT support to trace dynamic probe firings originating from libstapsdt.so. By tracing stapsdt/probe in libstapsdt.so, such tracers can see dynamic probe firings and critically also see them systemwide. The probe is an 8-argument USDT probe; first two args are provider/probe name, remainder are arguments (zeroed out if unset). A consumer looking for a particular probe firing can use the provider/probe names to distinguish it.

Patch 1 adds the support in stapsdt-probe.c. Is-enabled support is via the stapsdt probe semaphore, which manages reference count for us.

Patch 2 adds to the README describing the probe and how to trace with it.

alan-maguire avatar Feb 06 '24 11:02 alan-maguire

@mmarchini sorry not sure if I should tag specific folks to request review of the above? I'm not seeing a way to edit the PR to add reviewers.

alan-maguire avatar Feb 21 '24 17:02 alan-maguire

@dalehamel @mmarchini hi folks, wondering if anyone has any suggestions on the above? the wider aim is to make libstapsdt-based probes available to more tracers, and to libbpf-based BPF programs. thanks!

alan-maguire avatar Mar 12 '24 16:03 alan-maguire