On 03/08/2026 10:06, Amir Ayupov wrote:
Add a CoreSight shell test for --itrace=L. Record timestamped ETM trace with explicit -T sample timestamps and AUX pause/resume events, then check that the pause samples carry both a multi-frame callchain and a non-empty branch stack for each of the workload's two processes.
Decode the same recording with L4 and L64 and reject any branch stack deeper than the requested depth.
The test skips when cs_etm is absent, when not run as root, or when the recording turns out to lack virtual timestamps. It exercises the timestamp-gated path and the requested-depth bound; it does not attempt to verify that the attached history is correlated to the sample.
Signed-off-by: Amir Ayupov aaupov@fb.com
.../tests/shell/coresight/add_last_branch.sh | 175 ++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100755 tools/perf/tests/shell/coresight/add_last_branch.sh
[...]
+record_data +check_callchains
+decode 4 "$tmpdir/script-l4" +check_process_samples "$tmpdir/script-l4"
Minor nit, but these should be capital L. l is a different option.
+check_branch_stacks "$tmpdir/script-l4" 4
+decode 64 "$tmpdir/script-l64" +check_process_samples "$tmpdir/script-l64" +check_branch_stacks "$tmpdir/script-l64" 64
+cleanup +exit 0