On Thu, Jun 11, 2026 at 10:11:37AM +0100, James Clark wrote:
On 11/06/2026 8:57 am, Leo Yan wrote:
Add a CoreSight shell test for synthesized callchains.
The test uses the new callchain workload to generate trace and decodes it with synthesis callchain. It then verifies that the instruction samples show the expected callchain push and pop.
Use control FIFOs so tracing starts only around the workload, which keeps the trace data small. The test is limited to arm64 systems with the cs_etm event available.
After:
perf test 136 -vvv 136: CoreSight synthesized callchain: --- start --- test child forked, pid 3539 ---- end(0) ---- 136: CoreSight synthesized callchain : Ok
Assisted-by: Codex:GPT-5.5 Signed-off-by: Leo Yan leo.yan@arm.com
tools/perf/Documentation/perf-test.txt | 6 +- tools/perf/tests/builtin-test.c | 1 + tools/perf/tests/shell/coresight/callchain.sh | 168 ++++++++++++++++++++++++++ tools/perf/tests/tests.h | 1 + tools/perf/tests/workloads/Build | 2 + tools/perf/tests/workloads/callchain.c | 24 ++++
Maybe "syscall" is a better name? There's not any difference between this one and others like the deterministic one I added with regards to the callchain.
The callchain workload has function calls in userspace and system call for the switch between userspace and kernel.
Connecting to another comment for not static attribute to avoid LTO's function name tweaking, I will rename functions with prefix "callchain_", this can dismiss concern for naming conflict.
For above two reasons, I will keep the name.
Thanks, Leo