[DTrace-devel] [PATCH 0/5] A medley of USDT-related bugfixes

Nick Alcock nick.alcock at oracle.com
Mon Apr 24 19:08:11 UTC 2023


A bunch of bugs in the first implementation of USDT have recently come to
light. Fixing some of those rendered some of the existing USDT code
needlessly inefficient, so we fix that.

This applies on top of the nix/review/is-enabled branch, but largely touches
unrelated code (there are a few lines in common but only a few).

(The last patch looks scary but 90% of it is code motion, splitting one
function into two.)

Tested both conventionally and via a make install / restart of system
dtprobed / make check-installed. All pass except for those tests in the
source tree which are known to fail when make check-installed is done
(largely consumer tests).

Nick Alcock (5):
  uprobes, libproc: handle uprobes to procs in different fs namespaces
  libproc: fix mapping names low in the address space
  usdt: provide probes properly when >1 is specified
  test, usdt: test multiple simultaneous tracers of multiple processes
  pid, uprobes: improve horrendously inefficient uprobe scanning

 include/dtrace/pid.h                 |   6 +-
 libcommon/uprobes.c                  |  21 +-
 libdtrace/dt_impl.h                  |  11 +-
 libdtrace/dt_open.c                  |   3 +
 libdtrace/dt_pid.c                   | 293 ++++++++++++++++++---------
 libdtrace/dt_pid.h                   |   3 +-
 libdtrace/dt_proc.h                  |   1 -
 libproc/Psymtab.c                    |  52 ++++-
 libproc/libproc.h                    |   3 +-
 test/unittest/usdt/tst.allargs.sh    |   2 -
 test/unittest/usdt/tst.multitrace.r  |  10 +
 test/unittest/usdt/tst.multitrace.sh |  92 +++++++++
 12 files changed, 388 insertions(+), 109 deletions(-)
 create mode 100644 test/unittest/usdt/tst.multitrace.r
 create mode 100755 test/unittest/usdt/tst.multitrace.sh


base-commit: f543fa6706c0b31364356c01bf3de63e3cce8ad1
prerequisite-patch-id: fa667248b7b02e92ee6b3807123ebcf2ac0acc38
prerequisite-patch-id: 0cec5f1a31d528a493d6143644c1e6b78c7f403b
prerequisite-patch-id: 756ad5b8f08d5595c32dd113d742218991107746
prerequisite-patch-id: eb290f098e38981181d85240150e1713979dc505
prerequisite-patch-id: c25b38ab68e815a63f064aff7496408684f94a36
prerequisite-patch-id: b86eb7e00b5883a586bd4dc7143ab25094912288
prerequisite-patch-id: 6afb164d692c7489562e657ef3be3463ab84da2c
prerequisite-patch-id: 85d3c176dc4a7105e4f04dbcdb4ccbdf18741795
-- 
2.39.1.268.g9de2f9a303




More information about the DTrace-devel mailing list