[DTrace-devel] [oracle/dtrace-utils] 117c90: Fix stack-skip counts for caller and stackdepth
euloh
noreply at github.com
Thu Jun 26 03:26:46 UTC 2025
Branch: refs/heads/devel
Home: https://github.com/oracle/dtrace-utils
Commit: 117c90ea3f353aa40c84ad9e14343d0b383a3c46
https://github.com/oracle/dtrace-utils/commit/117c90ea3f353aa40c84ad9e14343d0b383a3c46
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
M bpf/get_bvar.c
Log Message:
-----------
Fix stack-skip counts for caller and stackdepth
Apparently, when we call the BPF get_stack() helper function,
it generally knows how many frames to skip to get the real kernel
stack. For fentry/fexit, however, this is apparently not the case,
and commit bc65cb44d
("cg: allow providers to specify a skip count for stack retrieval")
added the ability to skip frames for fentry/fexit probes.
When this "skip" is needed, however, it must must be even deeper
when we descend further frames, such as when we call dt_bpf_*()
precompiled functions.
Add this support for dt_bpf_caller() and dt_bpf_stackdepth().
That is, if there are stack-skip frames, skip yet one more frame
when inside a bpf/get_bvar.c function.
Note that we declare the skip count volatile. The compiler might
optimize code that uses the STACK_SKIP value, but we will subsequently
perform relocations that adjust this value.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: bcef7e17f4791d16c621da4979366d25bb38e844
https://github.com/oracle/dtrace-utils/commit/bcef7e17f4791d16c621da4979366d25bb38e844
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
M libdtrace/dt_prov_rawtp.c
Log Message:
-----------
Add stack-skip frame count for rawtp provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: d1feb8af700d036ff176da965204aa2fe0fa020b
https://github.com/oracle/dtrace-utils/commit/d1feb8af700d036ff176da965204aa2fe0fa020b
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
M test/unittest/sched/tst.stackdepth.d
Log Message:
-----------
test: remove unnecessary "unstable" tag
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 842eabc0ef84ea3876e65894bf43401736320814
https://github.com/oracle/dtrace-utils/commit/842eabc0ef84ea3876e65894bf43401736320814
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/check_caller_to_stack2.awk
A test/unittest/variables/bvar/check_stackdepth_to_stack.awk
A test/unittest/variables/bvar/tst.caller-fbt.d
A test/unittest/variables/bvar/tst.caller-fbt.r
A test/unittest/variables/bvar/tst.caller-fbt.r.p
R test/unittest/variables/bvar/tst.caller2.d
R test/unittest/variables/bvar/tst.caller2.r
R test/unittest/variables/bvar/tst.caller2.r.p
A test/unittest/variables/bvar/tst.stackdepth-fbt.d
A test/unittest/variables/bvar/tst.stackdepth-fbt.r
A test/unittest/variables/bvar/tst.stackdepth-fbt.r.p
R test/unittest/variables/bvar/tst.stackdepth2.d
R test/unittest/variables/bvar/tst.stackdepth2.r
R test/unittest/variables/bvar/tst.stackdepth2.r.p
Log Message:
-----------
test: caller and stackdepth tests for fbt provider
We will introduce a set of tests for the caller and stackdepth
built-in variables for a wide selection of providers.
For the caller test, we will essentially call
stack(2);
sym(caller);
and then compare the caller to the second stack frame using
the new script check_caller_to_stack2.awk.
For the stackdepth test, we will essentially call
printf("%d\n", stackdepth);
stack();
and then compare the stackdepth to the reported frames using
the new script check_stackdepth_to_stack.awk.
In this patch, introduce tests for the fbt provider, along with
the support scripts they need. Subsequent patches will handle
other providers.
The old tst.caller2.d and tst.stackdepth2.d, which tested fbt,
become obsolete. Remove them.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 4d44babf4a36c47496c4e77d701a302ef19a8923
https://github.com/oracle/dtrace-utils/commit/4d44babf4a36c47496c4e77d701a302ef19a8923
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
R test/unittest/builtinvar/tst.caller.d
A test/unittest/variables/bvar/tst.caller-dtrace.d
A test/unittest/variables/bvar/tst.caller-dtrace.r
R test/unittest/variables/bvar/tst.caller.d
A test/unittest/variables/bvar/tst.stackdepth-dtrace.d
A test/unittest/variables/bvar/tst.stackdepth-dtrace.r
R test/unittest/variables/bvar/tst.stackdepth.d
Log Message:
-----------
test: caller and stackdepth tests for dtrace provider
Also, a few old tests, which tested caller and stackdepth using the
dtrace provider, are now superfluous given the new, provider-named
tests. The old tests were extremely lenient -- e.g., simply
checking that these built-in variables were not -1, even though
both variables are unsigned anyhow!
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 4350d2acee6e7629e20a953e6a59ddf1a7ad52b9
https://github.com/oracle/dtrace-utils/commit/4350d2acee6e7629e20a953e6a59ddf1a7ad52b9
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/skip_rawtp_old.x
A test/unittest/variables/bvar/tst.caller-rawtp.d
A test/unittest/variables/bvar/tst.caller-rawtp.r
A test/unittest/variables/bvar/tst.caller-rawtp.r.p
A test/unittest/variables/bvar/tst.caller-rawtp.x
A test/unittest/variables/bvar/tst.stackdepth-rawtp.d
A test/unittest/variables/bvar/tst.stackdepth-rawtp.r
A test/unittest/variables/bvar/tst.stackdepth-rawtp.r.p
A test/unittest/variables/bvar/tst.stackdepth-rawtp.x
Log Message:
-----------
test: caller and stackdepth tests for rawtp provider
Also, add skip_rawtp_old.x, to skip rawtp testing on older kernels
for the reasons described in the file.
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 0badfcd086f822f0210da0ccdd92b89cafabf528
https://github.com/oracle/dtrace-utils/commit/0badfcd086f822f0210da0ccdd92b89cafabf528
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-cpc.d
A test/unittest/variables/bvar/tst.caller-cpc.r
A test/unittest/variables/bvar/tst.caller-cpc.r.p
A test/unittest/variables/bvar/tst.stackdepth-cpc.d
A test/unittest/variables/bvar/tst.stackdepth-cpc.r
A test/unittest/variables/bvar/tst.stackdepth-cpc.r.p
Log Message:
-----------
test: caller and stackdepth tests for cpc provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 8b616886c4e8c9aa549b10efee101f1f3d3ecfd6
https://github.com/oracle/dtrace-utils/commit/8b616886c4e8c9aa549b10efee101f1f3d3ecfd6
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-ip.d
A test/unittest/variables/bvar/tst.caller-ip.r
A test/unittest/variables/bvar/tst.caller-ip.r.p
A test/unittest/variables/bvar/tst.caller-ip.t
A test/unittest/variables/bvar/tst.stackdepth-ip.d
A test/unittest/variables/bvar/tst.stackdepth-ip.r
A test/unittest/variables/bvar/tst.stackdepth-ip.r.p
A test/unittest/variables/bvar/tst.stackdepth-ip.t
Log Message:
-----------
test: caller and stackdepth tests for ip provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 0e1ee6ca1b0f7adf53c230e3947e1701c20cdb50
https://github.com/oracle/dtrace-utils/commit/0e1ee6ca1b0f7adf53c230e3947e1701c20cdb50
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
R test/unittest/builtinvar/tst.caller1.d
A test/unittest/variables/bvar/tst.caller-profile.d
A test/unittest/variables/bvar/tst.caller-profile.r
A test/unittest/variables/bvar/tst.caller-profile.r.p
A test/unittest/variables/bvar/tst.stackdepth-profile.d
A test/unittest/variables/bvar/tst.stackdepth-profile.r
A test/unittest/variables/bvar/tst.stackdepth-profile.r.p
Log Message:
-----------
test: caller and stackdepth tests for profile provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 0a15fd0e636ca8bc2645ba8d3af64cb3751be919
https://github.com/oracle/dtrace-utils/commit/0a15fd0e636ca8bc2645ba8d3af64cb3751be919
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-sched.d
A test/unittest/variables/bvar/tst.caller-sched.r
A test/unittest/variables/bvar/tst.caller-sched.r.p
A test/unittest/variables/bvar/tst.stackdepth-sched.d
A test/unittest/variables/bvar/tst.stackdepth-sched.r
A test/unittest/variables/bvar/tst.stackdepth-sched.r.p
Log Message:
-----------
test: caller and stackdepth tests for sched provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 4b29eafb866288cf57885b62447ce32cf3d1ad6e
https://github.com/oracle/dtrace-utils/commit/4b29eafb866288cf57885b62447ce32cf3d1ad6e
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-proc.d
A test/unittest/variables/bvar/tst.caller-proc.r
A test/unittest/variables/bvar/tst.caller-proc.r.p
A test/unittest/variables/bvar/tst.stackdepth-proc.d
A test/unittest/variables/bvar/tst.stackdepth-proc.r
A test/unittest/variables/bvar/tst.stackdepth-proc.r.p
Log Message:
-----------
test: caller and stackdepth tests for proc provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: f2a056c905b0e5d2aadf73372ae16c5e1347a822
https://github.com/oracle/dtrace-utils/commit/f2a056c905b0e5d2aadf73372ae16c5e1347a822
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-rawfbt.d
A test/unittest/variables/bvar/tst.caller-rawfbt.r
A test/unittest/variables/bvar/tst.caller-rawfbt.r.p
A test/unittest/variables/bvar/tst.stackdepth-rawfbt.d
A test/unittest/variables/bvar/tst.stackdepth-rawfbt.r
A test/unittest/variables/bvar/tst.stackdepth-rawfbt.r.p
Log Message:
-----------
test: caller and stackdepth tests for rawfbt provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: b6294ac56cb85981531e16d43739747ea913eac1
https://github.com/oracle/dtrace-utils/commit/b6294ac56cb85981531e16d43739747ea913eac1
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/tst.caller-io.r
A test/unittest/variables/bvar/tst.caller-io.r.p
A test/unittest/variables/bvar/tst.caller-io.sh
A test/unittest/variables/bvar/tst.caller-io.x
A test/unittest/variables/bvar/tst.stackdepth-io.r
A test/unittest/variables/bvar/tst.stackdepth-io.r.p
A test/unittest/variables/bvar/tst.stackdepth-io.sh
A test/unittest/variables/bvar/tst.stackdepth-io.x
Log Message:
-----------
test: caller and stackdepth tests for io provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Commit: 162b818df69c3608cbc1757fdf30d29927306c36
https://github.com/oracle/dtrace-utils/commit/162b818df69c3608cbc1757fdf30d29927306c36
Author: Eugene Loh <eugene.loh at oracle.com>
Date: 2025-06-25 (Wed, 25 Jun 2025)
Changed paths:
A test/unittest/variables/bvar/skip_lockstat_5.10.x
A test/unittest/variables/bvar/tst.caller-lockstat.d
A test/unittest/variables/bvar/tst.caller-lockstat.r
A test/unittest/variables/bvar/tst.caller-lockstat.r.p
A test/unittest/variables/bvar/tst.caller-lockstat.t
A test/unittest/variables/bvar/tst.caller-lockstat.x
A test/unittest/variables/bvar/tst.stackdepth-lockstat.d
A test/unittest/variables/bvar/tst.stackdepth-lockstat.r
A test/unittest/variables/bvar/tst.stackdepth-lockstat.r.p
A test/unittest/variables/bvar/tst.stackdepth-lockstat.t
A test/unittest/variables/bvar/tst.stackdepth-lockstat.x
Log Message:
-----------
test: caller and stackdepth tests for lockstat provider
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Nick Alcock <nick.alcock at oracle.com>
Compare: https://github.com/oracle/dtrace-utils/compare/f0e1424fa41b...162b818df69c
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