[DTrace-devel] [oracle/dtrace-utils] c3f94d: work: run under valgrind
Kris Van Hees
noreply at github.com
Mon Oct 11 07:13:38 PDT 2021
Branch: refs/heads/dev
Home: https://github.com/oracle/dtrace-utils
Commit: c3f94d807a6653799e8859c9ebd8163ff0fbf77d
https://github.com/oracle/dtrace-utils/commit/c3f94d807a6653799e8859c9ebd8163ff0fbf77d
Author: Nick Alcock <nick.alcock at oracle.com>
Date: 2021-10-08 (Fri, 08 Oct 2021)
Changed paths:
M dtrace.spec
M libdtrace/dt_work.c
Log Message:
-----------
work: run under valgrind
Running BEGIN/END probes under valgrind failed because these probes work
by dropping uprobes on DTrace itself, and uprobes fail if the uprobed
process is being valgrinded: the breakpoint instruction inserted by
uprobes is translated into VEX IR and then emulated by valgrind, and the
emulation is located at a different address than the address originally
used by the kernel: so the kernel has no idea it was a uprobe, and
passes the breakpoint through to dtrace itself, killing it with a
SIGTRAP.
The solution is to use the bizarrely-named VALGRIND_NON_SIMD_CALL0
request to call the probes when valgrind is in use. This asks valgrind
to invoke a function on the real CPU rather than the emulated one, which
invokes it from the right address, so the kernel spots the uprobe for
what it is. VALGRIND_NON_SIMD_CALL* has harsh and barely-documented
requirements on what it can be used to call, but our probe functions are
entirely empty, so we can be pretty sure it'll always work for us.
Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Orabug: 32760574
Commit: 5f57f40aa61d2d4a6892ac757bc51b013de0c1eb
https://github.com/oracle/dtrace-utils/commit/5f57f40aa61d2d4a6892ac757bc51b013de0c1eb
Author: Nick Alcock <nick.alcock at oracle.com>
Date: 2021-10-08 (Fri, 08 Oct 2021)
Changed paths:
M libdtrace/dt_kernel_module.c
Log Message:
-----------
modules: support .gz and .xz-compressed modules
The module path ends in .ko.*:, where * depends on the compression
algorithm: so systems with compressed modules would skip all modules on
the incorrect grounds that none existed.
Add a few compression algorithms to make this subsystem work again.
(It is mostly invisible for in-tree modules.)
Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: c80033dcc000cd1a5bdc6056209e5e7ce90c1966
https://github.com/oracle/dtrace-utils/commit/c80033dcc000cd1a5bdc6056209e5e7ce90c1966
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2021-10-08 (Fri, 08 Oct 2021)
Changed paths:
M runtest.sh
M test/unittest/consumer/addr2str-null.c
M test/unittest/consumer/tst.merge_ranges_bug25767469.c
M test/unittest/consumer/tst.symbols.c
Log Message:
-----------
Fix compilation problems in C tests
The tests that are C source files are not compiling. Fix those
errors, including:
- augmenting test_incflags in runtest.sh
(and improving readability while we are at it)
- remove xfail for some tests
- update names of dtrace_syminfo_t members
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 9f27b8c7bb406ff3337072bfae69758e4eddc0f8
https://github.com/oracle/dtrace-utils/commit/9f27b8c7bb406ff3337072bfae69758e4eddc0f8
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2021-10-08 (Fri, 08 Oct 2021)
Changed paths:
M test/utils/.gitignore
Log Message:
-----------
Clean up order of entries in test/utils/.gitignore
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Compare: https://github.com/oracle/dtrace-utils/compare/f1d8646be43f...9f27b8c7bb40
More information about the DTrace-devel
mailing list