Files
linux/tools/perf/Documentation/perf-test.txt
T
Leo Yan ca0e19074b perf test: Add Arm CoreSight callchain test
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 with the cs_etm
event available and root permission.

After:

  perf test 138 -vvv
  138: CoreSight synthesized callchain:
  ---- start ----
  test child forked, pid 35581
  Callchain flow matched:
    l1=4642868 l2=4642880 l3=4642895 l4=4642919 l5=4670494 l6=4670500 l7=4670520
  ---- end(0) ----
  138: CoreSight synthesized callchain                                                                           : Ok

Assisted-by: Codex:GPT-5.5
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Leo Yan <leo.yan@arm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
2026-07-03 16:52:00 -07:00

90 lines
2.5 KiB
Plaintext

perf-test(1)
============
NAME
----
perf-test - Runs sanity tests.
SYNOPSIS
--------
[verse]
'perf test [<options>] [{list <test-name-fragment>|[<test-name-fragments>|<test-numbers>]}]'
DESCRIPTION
-----------
This command does assorted sanity tests, initially through linked routines but
also will look for a directory with more tests in the form of scripts.
To get a list of available tests use 'perf test list', specifying a test name
fragment will show all tests that have it.
To run just specific tests, inform test name fragments or the numbers obtained
from 'perf test list'.
OPTIONS
-------
-s::
--skip::
Tests to skip (comma separated numeric list).
-v::
-vv::
-vvv::
--verbose::
With a single '-v', verbose level 1, only failing test output
is displayed. With '-vv' and higher all test output is shown.
-S::
--sequential::
Run all tests one after the other. By default "exclusive"
tests are run sequentially, but other tests are run in
parallel to speed execution.
-r::
--runs-per-test::
Run each test the given number of times, by default once. This
option can be useful to determine if a test is flaky.
-F::
--dont-fork::
Do not fork child for each test, run all tests within single process, this
sets sequential mode.
--dso::
Specify a DSO for the "Symbols" test.
-w::
--workload=::
Run a built-in workload, to list them use '--list-workloads', current
ones include: noploop, thloop, leafloop, sqrtloop, brstack, datasym,
context_switch_loop, deterministic, named_threads, landlock and
callchain.
Used with the shell script regression tests.
Some accept an extra parameter:
seconds: leafloop, noploop, sqrtloop, thloop
nrloops: brstack, context_switch_loop
'named_threads' accepts the number of threads and the number of loops to
do in each thread.
The datasym, landlock, deterministic and callchain workloads don't accept
any.
--list-workloads::
List the available workloads to use with -w/--workload.
--record-ctl=fifo:ctl-fifo[,ack-fifo]::
This option is used to communicate with a perf record session in order
to control the recording scope to only the workload and avoid recording
setup and teardown code. When specifying this option, the same FIFO path
must be specified in the record session via:
perf record -D -1 --control=fifo:ctl-fifo[,ack-fifo] ...
Perf test sends 'enable' and 'disable' commands through ctl-fifo to
control event recording. If 'ack-fifo' is provided, the workload runner
waits for an 'ack' response after each command.