[DTrace-devel] [oracle/dtrace-utils] 56ebbb: bpf: fix file descriptor leak
euloh
noreply at github.com
Mon Feb 9 04:29:47 UTC 2026
Branch: refs/heads/stable
Home: https://github.com/oracle/dtrace-utils
Commit: 56ebbb8c8b083bdbdc74a4576a3dc3dc604a3d0e
https://github.com/oracle/dtrace-utils/commit/56ebbb8c8b083bdbdc74a4576a3dc3dc604a3d0e
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_bpf.c
Log Message:
-----------
bpf: fix file descriptor leak
When a BPF program has been attached to a perf event, it is safe to
close its file descriptor.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 7c77138fd41c118a6cf3416547c03190c6cb408e
https://github.com/oracle/dtrace-utils/commit/7c77138fd41c118a6cf3416547c03190c6cb408e
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_prov_uprobe.c
Log Message:
-----------
uprobe: remove unnecessary enable_*() functions
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 3fbcca750a10cf4f3586f97ede33da6f189eb3c7
https://github.com/oracle/dtrace-utils/commit/3fbcca750a10cf4f3586f97ede33da6f189eb3c7
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_bpf.c
M libdtrace/dt_bpf_maps.h
M libdtrace/dt_dlibs.c
M libdtrace/dt_impl.h
M libdtrace/dt_pid.c
M libdtrace/dt_probe.c
M libdtrace/dt_probe.h
M libdtrace/dt_program.c
M libdtrace/dt_program.h
M libdtrace/dt_prov_uprobe.c
M libdtrace/dtrace.h
A test/unittest/usdt/tst.defer-Z-basic.r
A test/unittest/usdt/tst.defer-Z-basic.sh
Log Message:
-----------
uprobe: Implement PID-specific uprobes
The mechanism to create uprobes by writing to $TRACEFS/uprobe_events
caused probes to be placed in the dev/inode based mapping. This means
that all tasks that use that mapping are subject to the probes firing.
The kernel supports placing uprobes for a specific task (by PID), which
avoids impacting all other tasks that share the same code but are not
the target of the tracing.
This new mechanism places uprobes using the perf_event_open interface.
Perf event attribute configuration data is read from
/sys/bus/event_source/devices/uprobe/ as needed (and cached to ease
repeated use). Underlying probes are now organized by PID-specific
providers (uprobe$PID), and attach/detach no longer depends on the
generic tracepoint support.
The usdt_prids BPF map is no longer needed because USDT BPF programs
are now task-specific. The trampoline generation for USDT Probes
discovered after tracing started can now perform a simple loop over
all compiled clauses, adding those that match the probe description
to the program.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 32363190e38f5a2c9f58e4a806c220d40323429c
https://github.com/oracle/dtrace-utils/commit/32363190e38f5a2c9f58e4a806c220d40323429c
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_module.c
Log Message:
-----------
module: fixing missing } when not using libctf
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 1cefd6d69ceefc845e2a20768576adca19c009ce
https://github.com/oracle/dtrace-utils/commit/1cefd6d69ceefc845e2a20768576adca19c009ce
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_prov_tcp.c
Log Message:
-----------
tcp: support non-libctf environments
Commit 0fa93b3ac ("tcp: new provider") and commit c08a5fcf2
("tcp provider: support tcp:::accept-established in absence of skb") both
introduced code that uses ctf_func_type_info() without a pre-processor
conditional to also support the case when libctf is not present on the
system.
When libctf is not present, it is assumed that the system is quite old
and therefore is running an older kernel. Use of libdtrace-ctf (which
has been deprecated in favour of libctf) on systems with recent kernels
is not supported and may lead to unexpected results.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 37b79f723badb0f27568c38ab0f78421d912c7c6
https://github.com/oracle/dtrace-utils/commit/37b79f723badb0f27568c38ab0f78421d912c7c6
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_module.c
Log Message:
-----------
module ranges: fix file pointer leak
The file pointer to modules.builtin.ranges was never closed.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 3198d4fb8a94325c84a836fdbdbd2ea974f9ee99
https://github.com/oracle/dtrace-utils/commit/3198d4fb8a94325c84a836fdbdbd2ea974f9ee99
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: add testsuite dependency for perl-Net-Ping
Commit 1e689f55 ("Make a start at reviving the ip tests.") added the
perlping.pl script, but did not ensure that a dependency was added
for perl-Net-Ping that the script depends on.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 4122d1b8129d49e211013f1069fbe2405f140688
https://github.com/oracle/dtrace-utils/commit/4122d1b8129d49e211013f1069fbe2405f140688
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M README.md
Log Message:
-----------
Update README.md for RPM info
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: d17f79f640453be8e7a2ebf033c20fafee338617
https://github.com/oracle/dtrace-utils/commit/d17f79f640453be8e7a2ebf033c20fafee338617
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M libdtrace/dt_pid.c
M test/unittest/usdt/tst.stapsdt-notes-isenabled.r
A test/unittest/usdt/tst.stapsdt-notes-isenabled.r.p
M test/unittest/usdt/tst.stapsdt-notes-isenabled.sh
Log Message:
-----------
Do not convert "__" to "-" for stapsdt provider names
DTrace provides "__" to "-" conversion for USDT probe names.
Commit 4f58b864a0 ("support stapsdt ELF-note-defined static probes")
included "__" to "-" conversion for stapsdt provider names and probe
names. Commit 22932a9875
("selftests/usdt: add is-enabled stapsdt tests using semaphores")
adds tests for both conversions.
Since SystemTap itself provides "__" to "-" conversion only for probe
names, remove the conversion for stapsdt provider names.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 6e94c7d0a253806f85c39ff5f4e32a800d4cb6b6
https://github.com/oracle/dtrace-utils/commit/6e94c7d0a253806f85c39ff5f4e32a800d4cb6b6
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-11-20 (Thu, 20 Nov 2025)
Changed paths:
M doc/userguide/index.md
M doc/userguide/reference/dtrace_providers.md
A doc/userguide/reference/dtrace_providers_stapsdt.md
Log Message:
-----------
doc: Add stapsdt provider documentation
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>
Commit: 825eaffd7a86491b61f8ca6576cd531bb43a57e7
https://github.com/oracle/dtrace-utils/commit/825eaffd7a86491b61f8ca6576cd531bb43a57e7
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M libdtrace/dt_prov_rawtp.c
Log Message:
-----------
Fix comments in rawtp provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: afcab543db9cb4837eaf754743b86550b906a273
https://github.com/oracle/dtrace-utils/commit/afcab543db9cb4837eaf754743b86550b906a273
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M doc/userguide/index.md
M doc/userguide/reference/dtrace_providers_rawtp.md
M doc/userguide/reference/dtrace_providers_sdt.md
Log Message:
-----------
doc: Update the sdt provider documentation
The documentation had been describing the legacy provider, in which sdt
probes were DTrace-specific instrumentation points in the kernel to
support other providers. In the current implementation, the sdt
provider simply exposes Linux kernel tracepoints.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: c5d889a679073df81da9fe99e1ba9905cc3b647e
https://github.com/oracle/dtrace-utils/commit/c5d889a679073df81da9fe99e1ba9905cc3b647e
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M doc/userguide/reference/aggregation.md
M doc/userguide/reference/dtrace-ref-PointersandScalarArrays.md
M doc/userguide/reference/dtrace-ref-speculation.md
M doc/userguide/reference/dtrace_functions.md
M doc/userguide/reference/dtrace_providers_dtrace.md
M doc/userguide/reference/dtrace_runtime_options.md
M doc/userguide/reference/function_copyinstr.md
M doc/userguide/reference/function_func.md
M doc/userguide/reference/function_speculation.md
M doc/userguide/reference/function_sym.md
M doc/userguide/reference/function_ufunc.md
M doc/userguide/reference/function_usym.md
M doc/userguide/reference/runtime_options.md
Log Message:
-----------
doc: Move `` inward
No Markdown formatting is performed inside ``. So something like
`[text](link)` is rendered literally as such. But the `` is intended
only for the text anyhow. So, change to [`text`](link).
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: e9b06dd2c0e4ae0c64d2b23d4032a9055fc436d2
https://github.com/oracle/dtrace-utils/commit/e9b06dd2c0e4ae0c64d2b23d4032a9055fc436d2
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M doc/userguide/index.md
M doc/userguide/reference/dtrace_functions.md
M doc/userguide/reference/function_clear.md
A doc/userguide/reference/function_trunc.md
M doc/userguide/reference/unimplemented_functions.md
Log Message:
-----------
doc: Add trunc() documentation to User Guide
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: f6149f2bdaae57f6d28c57c5684cafb74e6a04c3
https://github.com/oracle/dtrace-utils/commit/f6149f2bdaae57f6d28c57c5684cafb74e6a04c3
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M doc/userguide/reference/unimplemented_functions.md
Log Message:
-----------
doc: Clean up list of unimplemented functions
The case of dpath is tricky. First, it is actually called d_path() and
it was always meant to be used internally. Further, it is in fact
implemented, but only as a stub that always returns "<unknown>". Just
remove it from this listing and remain silent on it.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: f23700eb32d8009092d5a425dc48712272a8ab41
https://github.com/oracle/dtrace-utils/commit/f23700eb32d8009092d5a425dc48712272a8ab41
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-15 (Thu, 15 Jan 2026)
Changed paths:
M libdtrace/dt_prov_fbt.c
Log Message:
-----------
Fix a minor comment in the fbt provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 8368e07a519bfcc1871b0bcf4a3d53d6913fef23
https://github.com/oracle/dtrace-utils/commit/8368e07a519bfcc1871b0bcf4a3d53d6913fef23
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/dt_cg.c
M libdtrace/dt_cg.h
M libdtrace/dt_prov_cpc.c
M libdtrace/dt_prov_dtrace.c
M libdtrace/dt_prov_profile.c
M libdtrace/dt_prov_sdt.c
M libdtrace/dt_prov_syscall.c
Log Message:
-----------
cg, providers: refactor clearing probe arguments
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 3813535e1a44a1257985d7f297b28d2473812c92
https://github.com/oracle/dtrace-utils/commit/3813535e1a44a1257985d7f297b28d2473812c92
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/dt_bpf.c
Log Message:
-----------
bpf: allocate the buffers BPF map to fit highest CPU id
Even when less than the possible number of CPUs are online, the 'buffers'
BPF map should be allocated based on the highest possible CPU id because
probe data is written to the bufer that corresponds to a given CPU id,
which could be part of non-sequential CPU id configurations.
The observed problem was on a system with 128 possible CPUs (0-127), but
only CPUs 0-7,100-107 were online. The 'buffers' BPF map was created with
space to hold 16 trace data buffers (one for each online CPU), and since it
is an array map, this caused the trace buffers for CPUs 100-107 to fail to
allocate buffers, which in turn caused any trace data generated for those
CPUs never to get reported. Since 'buffers' is an array map accessed by
CPU id, enough space must be allocated to accomodate the highest online
CPU id.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 199436c2131b6ed452063ac4aa6325a00bbd59c5
https://github.com/oracle/dtrace-utils/commit/199436c2131b6ed452063ac4aa6325a00bbd59c5
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/dt_options.c
A test/unittest/options/err.version-pragma.d
A test/unittest/options/err.version-pragma.r
M test/unittest/options/err.version.d
M test/unittest/options/err.version.r
R test/unittest/options/tst.version.r
R test/unittest/options/tst.version.sh
R test/unittest/version/err.1.1.d
R test/unittest/version/tst.1.0.d
Log Message:
-----------
options: discontinue -xversion=V as a valid option
DTrace allowed setting a previous version to operate in compatibility
mode. Unfortunately, it was not fully implemented. Translators are
not really versioned, and if a translator uses an identifier that does
not exist in the version specified in -xversion=V, data structures end
up corrupted.
Since the usefulness of -xversion=V seems to be less than the effort
needed to rectify the implementation, we are no longer supporting this
option.
Tests added to ensure that the error is reported for -xversion=V and
when set using a pragma. The former version tests have been removed
as they have become obsolete.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Alan Maguire <alan.maguire at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 3e08c520976e240a41cfb552f2c2731236118aad
https://github.com/oracle/dtrace-utils/commit/3e08c520976e240a41cfb552f2c2731236118aad
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M test/unittest/disasm/tst.ann-bvar.r
M test/unittest/disasm/tst.ann-bvar.sh
Log Message:
-----------
test: Remove args[3] from sdt:task::task_rename probe
Commit e3f6a4227 ("tracing: Remove pid in task_rename tracing output")
of the Linux kernel (6.14-rc1) removed the pid (first) argument to the
task_rename tracepoint. The corresponding DTrace sdt probe, therefore,
has one less argument. Change the test to omit args[3], regardless of
the kernel version.
Change the test to emit more diagnostic output in case of failure.
Commit 564efa04c ("test: adjust sdt.tst.args.d for task_rename
tracepoint differences") of DTrace already handles this task_rename
issue for test/unittest/sdt/tst.args-*.d by simply skipping one test
or the other depending on whether the kernel version is < or >= 6.14.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 95b90491c08b0b0403d371e1b0c0224355739608
https://github.com/oracle/dtrace-utils/commit/95b90491c08b0b0403d371e1b0c0224355739608
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M doc/userguide/reference/dtrace-ref-StaticallyDefinedTracingofUserApplications.md
Log Message:
-----------
doc: Add include path for sys/usdt.h
When dtrace constructs a USDT header, it includes the header sys/usdt.h.
Add a note to our documentation that /usr/lib64/dtrace/include needs to
be on the include path for this header to be found.
While we are at it, break long lines of text up for better readability
of the Markdown file and simpler diffs in the future.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 55fe36635d0db87fc41ca3f5e7a86c83bc958734
https://github.com/oracle/dtrace-utils/commit/55fe36635d0db87fc41ca3f5e7a86c83bc958734
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M Build
A doc/tutorial/1.IntroducingDTrace.md
A doc/tutorial/2.TracingOperatingSystemBehavior.md
A doc/tutorial/3.TracingUserSpaceApplications.md
A doc/tutorial/4.GoingFurtherWithDTrace.md
A doc/tutorial/index.md
Log Message:
-----------
doc: Add the DTrace Tutorial to the git repo and install package
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 4346c99a5d256cae7e1dcf7a99b40391052aecce
https://github.com/oracle/dtrace-utils/commit/4346c99a5d256cae7e1dcf7a99b40391052aecce
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M cmd/dtrace.c
A test/unittest/printf/tst.grouping-LC_ALL.r
A test/unittest/printf/tst.grouping-LC_ALL.sh
A test/unittest/printf/tst.grouping-LC_ALL.x
A test/unittest/printf/tst.grouping-LC_NUMERIC.r
A test/unittest/printf/tst.grouping-LC_NUMERIC.sh
A test/unittest/printf/tst.grouping-LC_NUMERIC.x
Log Message:
-----------
Fix printf formatting with non-monetary grouping chars
Non-monetary grouping characters are used to separate groups of digits
in numbers that are not monetary values. DTrace used to document
support for printf formatting, using a single quote, for such grouping.
Currently, support is largely implemented, but simply not working.
Add a setlocale() call to pick LC_NUMERIC up from environment variables.
Orabug: 30430270
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: d3d3f2cde74aec5c25436f6627a3fd5f96c80b79
https://github.com/oracle/dtrace-utils/commit/d3d3f2cde74aec5c25436f6627a3fd5f96c80b79
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/dt_provider.c
Log Message:
-----------
Guard against inserting the same provider twice
Add a safety net to dt_provider_create(), to check if a specified
provider has already been inserted.
This also requires a corresponding change in dt_provider_lookup(), so
that it will work even if no providers have yet been inserted.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: ed7c9187db8bf2909685b0b08a2cb563b12e03aa
https://github.com/oracle/dtrace-utils/commit/ed7c9187db8bf2909685b0b08a2cb563b12e03aa
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/Build
Log Message:
-----------
Remove obsolete reference to dt_prov_rawfbt.c
In commit 0b7c5a6327 ("fbt, rawfbt: consolidate code to avoid duplication"),
the file dt_prov_rawfbt.c was removed. Remove the remaining reference
to this file.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: f82b6f28edc8eb5848deb3609588d50ae2d044cb
https://github.com/oracle/dtrace-utils/commit/f82b6f28edc8eb5848deb3609588d50ae2d044cb
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M libdtrace/dt_bpf.c
Log Message:
-----------
bpf: use initializer for dtrace_difo_t *dp
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 91cdf5eb8a1e4c665b3ae7a781f46204bb08d70d
https://github.com/oracle/dtrace-utils/commit/91cdf5eb8a1e4c665b3ae7a781f46204bb08d70d
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-16 (Fri, 16 Jan 2026)
Changed paths:
M test/demo/script/interp.d
M test/demo/script/tracewrite.d
M test/demo/spec/specopen.d
M test/stress/fbtsafety/tst.vahole.d
M test/unittest/lockstat/tst.lockstat-summary.d
M test/unittest/scripting/err.D_MACRO_UNDEF.invalidargs.d
M test/unittest/scripting/err.D_OP_LVAL.rdonly.d
M test/unittest/scripting/err.D_OP_WRITE.usepidmacro.d
M test/unittest/scripting/err.D_SYNTAX.concat.d
M test/unittest/scripting/err.D_SYNTAX.desc.d
M test/unittest/scripting/err.D_SYNTAX.inval.d
M test/unittest/scripting/err.D_SYNTAX.pid.d
M test/unittest/scripting/tst.arg0.d
M test/unittest/scripting/tst.assign.d
M test/unittest/scripting/tst.assign.r
M test/unittest/scripting/tst.basic.d
M test/unittest/scripting/tst.pgid.d
M test/unittest/scripting/tst.pgid.r
M test/unittest/scripting/tst.pid.d
M test/unittest/scripting/tst.pid.r
M test/unittest/scripting/tst.quiet.d
M test/unittest/scripting/tst.sid.d
M test/unittest/scripting/tst.trace.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithBreakPoint.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithChill.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOut.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithCopyOutStr.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithPanic.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithRaise.r
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.d
M test/unittest/speculation/err.D_ACT_SPEC.SpeculateWithStop.r
Log Message:
-----------
test: correct file permissions
Various tests had a #!-invocation while still being expected to be used
as scripts fed to dtrace. Removed the #!-lines and marked the files
non-executable.
Various tests that were meant to be invoked as standaline scripts had an
absoolute path to dtrace in the #!-invocation which was not recognized.
runtest.sh expects standalone D scripts to use '#!dtrace' so that the
correct path to the dtrace executable being tested can be inserted.
Corrected the tests, and ensured they are executable.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: a27582b56d414f3a234b4f4f0a64a9ef71b9b910
https://github.com/oracle/dtrace-utils/commit/a27582b56d414f3a234b4f4f0a64a9ef71b9b910
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M test/unittest/funcs/strtok/tst.strtok.d
M test/unittest/funcs/substr/tst.substr.d
M test/unittest/types/tst.struct.d
M test/unittest/types/tst.typedef.d
Log Message:
-----------
test: Add ERROR clause to prevent hang from runtime error
These tests XFAIL. Since they incur runtime failures, the scripts hang,
waiting for the test suite to time them out.
Add an ERROR clause to each test, so that XFAILs do not hang needlessly.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 22573f69a04ef5aa93cfcf99560438d48f38f30a
https://github.com/oracle/dtrace-utils/commit/22573f69a04ef5aa93cfcf99560438d48f38f30a
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: various fixes
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 4d4197d727e25c4729e4b8db1984ead2a9bf5dd0
https://github.com/oracle/dtrace-utils/commit/4d4197d727e25c4729e4b8db1984ead2a9bf5dd0
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M test/unittest/funcs/substr/tst.substr.d
M test/unittest/funcs/substr/tst.substr.r
M test/unittest/funcs/tst.basename.d
M test/unittest/funcs/tst.basename.r
M test/unittest/funcs/tst.index.d
M test/unittest/funcs/tst.index.r
Log Message:
-----------
test: expected results files should not be executable scripts
These tests generated a bash or perl script as output, but given that
the associated .r files are not meant to be executable, do not emit a
looks like a script but is not executable.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 1638eaff2941b72ab4556bd9debe4bb5dc640ad2
https://github.com/oracle/dtrace-utils/commit/1638eaff2941b72ab4556bd9debe4bb5dc640ad2
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M libdtrace/dt_prov_fbt.c
M libdtrace/dt_prov_rawtp.c
A test/unittest/funcs/stack/tst.asgn_dvar.x
A test/unittest/funcs/stack/tst.asgn_gvar.x
A test/unittest/funcs/stack/tst.asgn_lvar.x
A test/unittest/funcs/stack/tst.asgn_tvar.x
A test/unittest/funcs/stack/tst.ref_addrs.x
A test/unittest/printf/tst.stack.x
A test/unittest/stack/tst.stack.x
A test/utils/stack_skip_test.sh
Log Message:
-----------
Change stack_skip to 3
For most probes, bpf_get_stack() strips off artificial BPF JIT stack
frames. In a few cases -- like fprobes and rawtp -- we have to skip
the first few frames manually. Typically, we should skip 3 frames
(trampoline, clause, and the bpf_get_stack call itself). Further,
our BPF functions like
get_bvar_caller()
get_bvar_stackdepth()
get_bvar_ucaller()
get_bvar_ustackdepth()
skip an additional frame to account for that call.
Change stack_skip to 3 for the dt_fbt_fprobe and dt_rawtp providers.
This raises the thorny question of testing. Until recently, the
stack_skip value we had been using -- 4, not 3 -- worked since it was
chosen empirically: there was a bug in the kernel that added an extra
frame. But now, the kernel situation is muddled. The bug has been
fixed in recent kernels, but only for x86. See
https://github.com/torvalds/linux/commit/6d08340d1e354787d6c65a8c3cdd4d41ffb8a5ed
Revert "perf/x86: Always store regs->ip in perf_callchain_kernel()"
A broader fix, for non-x86, is also expected. See the thread that
starts at:
https://lore.kernel.org/all/a38fed68-67bc-98ce-8e12-743342121ae3@oracle.com/
So, for now, XFAIL tests on "unfixed" (older) kernels.
Orabug: 38776929
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: b6c3d98bb6a11a9a6ab4a635f1104f1acf970d9e
https://github.com/oracle/dtrace-utils/commit/b6c3d98bb6a11a9a6ab4a635f1104f1acf970d9e
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M libdtrace/dt_cc.c
M libdtrace/dt_pid.c
M libdtrace/dt_pid.h
M libdtrace/dt_prov_uprobe.c
Log Message:
-----------
pid, usdt, stapsdt: refactor dependency on pcb and dpr
The pid/usdt/stapsdt handling code in dt_pid.c was passing along both
dtp and pcb, while dtp->dt_pcb is known to provide the value of pcb
already. This was done to handle a case where a fake pcb was being
passed (from dt_prov_uprobe.c) to ensure that dt_pid_error() would not
trigger a SEGV.
After careful code analysis, dt_pid_error() is restructured to handle
the case of pcb and/or dpr being NULL, so that the fake pcb is no
longer needed, and we can use dtp to get to the (possibly NULL) pcb.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 1cf5e40acd5c0c5fc63498411d7744d3fc5df63b
https://github.com/oracle/dtrace-utils/commit/1cf5e40acd5c0c5fc63498411d7744d3fc5df63b
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M llm/llms-dtrace-complete.txt
M llm/llms-dtrace-short.txt
Log Message:
-----------
Update LLM context files to forbid "if" statements
Uploading the existing context file to generative AI using either
openai.gpt-4.1 or openai.gpt-5.2 led to the AI assistant producing D
scripts with "if" statements, even though such statements have never
been supported in the D language. Asking the assistant why, it had
muddled explanations, like "if" being a reserved keyword in D, etc.
Modifying the context file to forbid "if" explicitly had limited success
at first. In one case, the assistant explained, "The context clearly
states not to do that. Despite this instruction, I used it likely due
to a habitual programming pattern."
I finally got a statement strong enough to eliminate the use of "if" for
some simple prompts I tried. I used both openai.gpt-4.1 and 5.2, trying
each LLM with old and new context files, 3 times each since generate AI
is not deterministic. The old file always result in "if"; the new file
never did.
There is currently no automated testing for these context files, which
clearly depend on the gen AI assistant anyhow.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>
Commit: 9a314abdb7f733a649115080f68f9b583ed7690f
https://github.com/oracle/dtrace-utils/commit/9a314abdb7f733a649115080f68f9b583ed7690f
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M libdtrace/dt_prov_dtrace.c
M libdtrace/dt_prov_fbt.c
M libdtrace/dt_prov_rawtp.c
M libdtrace/dt_prov_sdt.c
M libdtrace/dt_provider_tp.h
A test/unittest/providers/rawfbt/tst.wildcard-provider.d
A test/unittest/providers/rawfbt/tst.wildcard-provider.r
Log Message:
-----------
rawfbt: prvname is not properly set
The char array prvname[] is set for each provider. It is used in the
file that implements the provider. It might also be passed to
dt_sdt_populate() via a function argument.
However, dt_provider_tp.h also defines the macro GROUP_DATA in terms of
prvname. In turn, GROUP_DATA is used not only in dt_prov_dtrace.c but
then again in dt_prov_fbt.c to define FBT_GROUP_DATA.
In commit 0b7c5a632 ("fbt, rawfbt: consolidate code to avoid duplication"),
the fbt and rawfbt providers are combined into a single file. Thus, two
uses of prvname collide. The in-file collisions get resolved, but the
cascade of macro definitions does not: FBT_GROUP_DATA ends up using
"fbt" for both fbt and rawfbt providers. As a result, it is possible
for rawfbt probes not to be seen.
Notice that GROUP_DATA is always paired with prp->desc->prb. Therefore,
simply replace:
-#define GROUP_DATA getpid(), prvname
+#define PROBE_DATA getpid(), prp->desc->prv, prp->desc->prb
This makes the code more compact and relieves the macro definitions from
needing prvname. It also makes the FBT_GROUP_DATA macro unnecessary.
The format (FMT) macro is similarly renamed and redefined to include the
probe info.
Add a test to check that a rawfbt probe can be found behind an fbt probe
when the probe description has a wildcard provider.
Orabug: 38842114
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 2f6d75ef8a71d59e950f663e94226b1b68f073b6
https://github.com/oracle/dtrace-utils/commit/2f6d75ef8a71d59e950f663e94226b1b68f073b6
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M Build
Log Message:
-----------
Add llm directory to installed doc directory
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 1898d098a582488c9de485a9b672f6b2929335ba
https://github.com/oracle/dtrace-utils/commit/1898d098a582488c9de485a9b672f6b2929335ba
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M libdtrace/mkvers
Log Message:
-----------
Support deeper version numbers (e.g. 2.0.4.x)
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: d14411bfd0975b297eb613adf7764d0e3a1e4ecf
https://github.com/oracle/dtrace-utils/commit/d14411bfd0975b297eb613adf7764d0e3a1e4ecf
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M NEWS
M dtrace.spec
M libdtrace/versions.list
Log Message:
-----------
Update NEWS and dtrace.spec for release 2.0.4.1
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 2c6f555f24639f66970a19f2671bb05655f43655
https://github.com/oracle/dtrace-utils/commit/2c6f555f24639f66970a19f2671bb05655f43655
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: Update Version to 2.0.4.1
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Commit: cb3df84987cbe4d6ef307448db1e12f0cb006989
https://github.com/oracle/dtrace-utils/commit/cb3df84987cbe4d6ef307448db1e12f0cb006989
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-26 (Mon, 26 Jan 2026)
Changed paths:
M test/utils/Build
Log Message:
-----------
test: Install stack_skip_test.sh
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 6598c5d1e1a35e7287d09c559ddb25a0de704cd6
https://github.com/oracle/dtrace-utils/commit/6598c5d1e1a35e7287d09c559ddb25a0de704cd6
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M libdtrace/dt_link.c
M libdtrace/dt_prov_dtrace.c
Log Message:
-----------
Use asprintf() to allocate strings
Earlier patches have slowly replaced constructs like:
int len;
len = snprintf(NULL, 0, format, args) + 1;
buf = malloc(len);
snprintf(buf, len, format, args);
with the more compact:
asprintf(&buf, format, args);
Replace the remaining instances of the bulkier construct.
Note that dt_conf_init() continues to compute a buffer length and
allocate a buffer, since that buffer will be reused multiple times.
Further, dt_probe_tag() keeps its current form so that memory can be
allocated with alloca() to guard against memory leaks in the event that
ctf_add_typedef() fails.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: cde47c01e36fc32e769e1d517487345c4b0efd75
https://github.com/oracle/dtrace-utils/commit/cde47c01e36fc32e769e1d517487345c4b0efd75
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M test/unittest/dtrace-util/tst.ListProbesFuncEmpty.r
M test/unittest/dtrace-util/tst.ListProbesFuncEmpty.sh
M test/unittest/dtrace-util/tst.ListProbesNameEmpty.r
M test/unittest/dtrace-util/tst.ListProbesNameEmpty.sh
Log Message:
-----------
test: Account for readahead tracepoints
Some tests check for empty probe descriptions. In some cases, the tests
relied on the absence of any read* modules.
However, some kernels can have "readahead" tracepoints. Tests expecting
no read* modules will therefore fail.
Change these tests to ask for readfoo* modules to ensure that the probe
descriptions will indeed find no probes.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: ee89990bd8366d3d04e94db8c082936a6ef7d3ee
https://github.com/oracle/dtrace-utils/commit/ee89990bd8366d3d04e94db8c082936a6ef7d3ee
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M test/unittest/syscall/tst.entry.d
Log Message:
-----------
test: Increase syscall entry timeout
The run time for this test seems twice as long for aarch64 as for
x86_64. Further, the run time seems to have jumped significantly from
kernel 5.15 to 6.12 and then again to kernel 6.18. E.g.,
x86_64 aarch64
5.15 7 secs 18 secs
6.12 12 secs 33 secs
6.18 22 secs 54 secs
Looking at a run on the 6.18 aarch64 system, the time is basically
spent in the dtrace_close() call to dt_probe_detach_all(), which does:
for (prp = ...)
prp->prov->impl->detach(dtp, prp);
Then, dt_tp_probe_detach() calls dt_tp_detach(), which does:
close(tpp->fd);
This close() averages over 0.1 secs. For hundreds of syscall probes,
we get nearly a minute of run time, exceeding the default test timeout.
For the time being, increase the timeout on this test.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 2004f761031d7a5a62333d6644aa63b9a0f9cf1a
https://github.com/oracle/dtrace-utils/commit/2004f761031d7a5a62333d6644aa63b9a0f9cf1a
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: testsuite: weakly pull in kernel-uek-tools to get perf
This prevents yum/dnf from pulling in the first kernel it finds, which
is often entirely wrong.
(This is obviously only applicable to OL and no other distro.)
Orabug: 38064413
Signed-off-by: Nick Alcock <nick.alcock at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 1a7c7e3005a0565fba750cb4b2947f414847a6a1
https://github.com/oracle/dtrace-utils/commit/1a7c7e3005a0565fba750cb4b2947f414847a6a1
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M libdtrace/mkvers
Log Message:
-----------
Revert "Support deeper version numbers (e.g. 2.0.4.x)"
This reverts commit 1898d098a582488c9de485a9b672f6b2929335ba.
The DTrace version numbering scheme only supports up to 3 digits in the
version number, and expanding this to 4 digits would require quite a lot
more changes.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 22023cdbf8b5a9c8bb03fd9bbbb57bd22fef5e26
https://github.com/oracle/dtrace-utils/commit/22023cdbf8b5a9c8bb03fd9bbbb57bd22fef5e26
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-01-27 (Tue, 27 Jan 2026)
Changed paths:
M NEWS
M dtrace.spec
M libdtrace/versions.list
Log Message:
-----------
Update NEWS and dtrace.spec for release 2.0.5
New release will be 2.0.5 instead of 2.0.4.1.
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 109a4fd700ef81805af604ccd717cb53cb6732b4
https://github.com/oracle/dtrace-utils/commit/109a4fd700ef81805af604ccd717cb53cb6732b4
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-02-04 (Wed, 04 Feb 2026)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: fix missing attribution of patches
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Elena Zannoni <elena.zannoni at oracle.com>
Commit: cd770947e6f7770cec38e64ec47b4668c87fb744
https://github.com/oracle/dtrace-utils/commit/cd770947e6f7770cec38e64ec47b4668c87fb744
Author: Kris Van Hees <kris.van.hees at oracle.com>
Date: 2026-02-04 (Wed, 04 Feb 2026)
Changed paths:
M libdtrace/dt_pid.c
M libdtrace/dt_prov_uprobe.c
A test/unittest/usdt/tst.multiloc.r
A test/unittest/usdt/tst.multiloc.sh
A test/unittest/usdt/tst.stapsdt-notes-bug38922360.r
A test/unittest/usdt/tst.stapsdt-notes-bug38922360.sh
Log Message:
-----------
usdt, stapsdt: fix argument handling for multi-location probes
When a USDT probe has multiple call sites in the same function, only one
of the probe programs retrieves the argument values correctly. The
probe argument data is collected for the first underlying probe, and then
skipped for any subsequent underlying probes.
Since it is not guaranteed that the argument description is identical for
all underlying probes (although it is almost always that way), we need to
process the argument description string for each underlying probe.
Orabug: 38922360
Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
Commit: 1dcba90092eaebfc2c8340d5b6b81859d96bff79
https://github.com/oracle/dtrace-utils/commit/1dcba90092eaebfc2c8340d5b6b81859d96bff79
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-02-04 (Wed, 04 Feb 2026)
Changed paths:
M NEWS
M dtrace.spec
Log Message:
-----------
NEWS/dtrace.spec: Add items for release 2.0.5
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
Commit: 33809527823227ad0afbdc1a67b496c6a76bcfa0
https://github.com/oracle/dtrace-utils/commit/33809527823227ad0afbdc1a67b496c6a76bcfa0
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2026-02-04 (Wed, 04 Feb 2026)
Changed paths:
M dtrace.spec
Log Message:
-----------
spec: 2.0.5-2 release
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Compare: https://github.com/oracle/dtrace-utils/compare/59a49ce9d4a3...338095278232
To unsubscribe from these emails, change your notification settings at https://github.com/oracle/dtrace-utils/settings/notifications
More information about the DTrace-devel
mailing list