[DTrace-devel] [PATCH 00/20] a pile of not-very-related backlogged work

Nick Alcock nick.alcock at oracle.com
Wed May 11 21:12:42 UTC 2022


Most of these are fallout from the alloca work, in particular:

  Add annotations for dctx->X and mst->X members
  cg: add dt_cg_trace
  memcpy: error-check
  cg: comment typo fix
  regset: add spill protection
  bpf: don't throw away CTF errors when doing relocations
  tests: always check expected results as text, not binary
  tests: add descriptive comment to fault-location.sh
  dlibs: improve load-time errors
  runtest: pass timeouts down to tests: use it in one test
  modules: fix can-never-fail comparison
  speculations, bpf: check for nonexistent CTF before using it
  drop obsolete GCC bug workaround

They are mostly unrelated, but fall into a few broad categories:

 - little infrastructural enhancements: new asm annotations, a
   mechanism for emitting trace output at runtime to the BPF
   log pipe, and a mechanism for preventing register spills
   across regions of codegen where you know you will be
   referring to those regs by number and will be very broken
   if they get spilled; plus, we now check dt_cg_memcpy for
   errors; some new translators are added as well

 - type-related fixes: only one of this once-copious family survives,
   implementing support for the "slice" mechanism which CTFv3 uses to
   encode bitfields

 - bugfixes, mostly to the no-CTF case (which was emitting
   terrible error messages) and for the glibc 2.31 -- 2.34 case,
   which was failing to identify crucial parts of the dlmopen-
   spying machinery due to internal changes (2.35 is not yet
   handled: coming soon); but also a fix for a terrible ancient
   causing segfaults at startup if you did really not too
   unlikely things with the command line

 - cleanups, dropping some very dead unnecessary typedefs which were
   getting in my way, dead old buggy-compiler workarounds, etc.

 - testsuite fixes, always doing textual diffs, allowing
   @@runtest-opts: -e to work as you'd expect, and allowing
   tests to see the timeout in force so they can set their
   own timeouts based on that value

No new test failures observed.

Kris Van Hees (1):
  Add annotations for dctx->X and mst->X members

Nick Alcock (19):
  Extirpate longlong_t and u_longlong_t from C
  proc: refactor find_link_maps out of find_l_searchlist
  libproc: dynamically search for elements of the rtld_global structure
  cg: add dt_cg_trace
  memcpy: error-check
  cg: comment typo fix
  regset: add spill protection
  bpf: don't throw away CTF errors when doing relocations
  tests: always check expected results as text, not binary
  tests: add descriptive comment to fault-location.sh
  dlibs: improve load-time errors
  parser: support slices of typedefs, etc
  translators: procfs.d: rename projid_t
  runtest: pass timeouts down to tests: use it in one test
  modules: fix can-never-fail comparison
  speculations, bpf: check for nonexistent CTF before using it
  drop obsolete GCC bug workaround
  test: allow test options to be set to "-e"
  cmd: fix multiple args after --

 Makeoptions                                   |   3 +-
 bpf/Build                                     |   3 +-
 bpf/trace_ptr.c                               |  23 ++
 cmd/Build                                     |   5 +-
 cmd/dtrace.c                                  | 378 +++++++++---------
 libdtrace/Build                               |   2 +-
 libdtrace/dt_cc.c                             |  38 +-
 libdtrace/dt_cg.c                             |  44 +-
 libdtrace/dt_consume.c                        |  18 +-
 libdtrace/dt_dis.c                            | 139 +++++--
 libdtrace/dt_dlibs.c                          |   1 +
 libdtrace/dt_handle.c                         |   2 +-
 libdtrace/dt_ident.c                          |  10 +-
 libdtrace/dt_link.c                           |   8 +-
 libdtrace/dt_module.c                         |   2 +-
 libdtrace/dt_parser.c                         |  90 +++--
 libdtrace/dt_pid.c                            |  12 +-
 libdtrace/dt_printf.c                         |   4 +-
 libdtrace/dt_regset.c                         |  29 +-
 libdtrace/dt_regset.h                         |   2 +
 libdtrace/dt_subr.c                           |  18 +-
 libdtrace/dtrace.h                            |   1 -
 libdtrace/procfs.d.in                         |   4 +-
 libproc/Build                                 |   2 +-
 libproc/Pcontrol.h                            |   8 +
 libproc/mkoffsets.sh                          |  10 +-
 libproc/rtld_db.c                             | 360 +++++++++++++----
 runtest.sh                                    |  15 +-
 .../bitfields/tst.bitfield-is-integer.d       |  25 ++
 test/unittest/bitfields/tst.slices.d          |  28 ++
 .../dtrace-util/err.MultipleNonOptFlags.d     |  17 +
 test/unittest/error/tst.fault-location.sh     |   3 +
 test/unittest/providers/tst.dtrace_cleanup.sh |   2 +-
 uts/common/sys/dtrace_types.h                 |  23 +-
 34 files changed, 911 insertions(+), 418 deletions(-)
 create mode 100644 bpf/trace_ptr.c
 create mode 100644 test/unittest/bitfields/tst.bitfield-is-integer.d
 create mode 100644 test/unittest/bitfields/tst.slices.d
 create mode 100644 test/unittest/dtrace-util/err.MultipleNonOptFlags.d

-- 
2.36.1.263.g194b774378.dirty




More information about the DTrace-devel mailing list