[PATCH v1 00/12] perf tests: Enhancements, speedups, and flakiness fixes

From: Ian Rogers

Date: Mon Jun 15 2026 - 21:26:27 EST


This patch series introduces a comprehensive set of improvements to the perf
test suite, focusing on execution speed, reliability, and correctness.

It contains the following key updates:
1. Speed optimizations for shell tests (lock contention, off-cpu profiling,
metrics validation) by scaling down workload durations and using lighter
system-wide defaults.
2. Fixes for test flakiness in branch stack sampling, BPF counters on hybrid
systems, Python JIT dump profiling, and trace record/replay.
3. A new robust retry helper (perf_record_with_retry) to ensure reliable
recording of intermittent events in slow or virtualized environments.
4. Support for sub-second durations in noploop and thloop workloads to
accelerate tests that only require brief sampling windows.
5. Fixes for terminal width truncation during parallel test execution, ensuring
the progress output does not wrap or corrupt the screen when test names
exceed the terminal width (including skipped tests).
6. Restrictions on core PMU bypass parsing to correctly enforce the
--pmu-filter option.

The combined changes drastically reduce the total runtime of the test suite
while improving the stability of hardware-dependent and sampling-based tests.

Ian Rogers (12):
perf parse-events: Restrict core PMU bypass to --cputype option
perf test: Truncate test description to fit terminal width
perf tests workloads: Support sub-second durations in noploop and
thloop
perf tests: Add robust record retry helper and use subsecond workloads
perf tests: Skip metrics validation if system-wide recording lacks
permission
perf tests: Fix Python JIT dump profiling test failure
perf tests: Fix flakiness in trace record and replay test
perf tests: Fix flakiness in BPF counters test on hybrid systems
perf tests: Fix flakiness in branch stack sampling tests
perf tests: Speed up off-cpu profiling tests
perf tests: Speed up lock contention analysis shell test
perf tests: Speed up metrics checking shell tests

tools/perf/builtin-stat.c | 2 +
tools/perf/tests/builtin-test.c | 95 +++++++---
tools/perf/tests/parse-events.c | 11 +-
tools/perf/tests/pmu-events.c | 6 +-
tools/perf/tests/shell/jitdump-python.sh | 66 ++++---
tools/perf/tests/shell/kvm.sh | 61 ++++---
.../tests/shell/lib/perf_metric_validation.py | 11 +-
tools/perf/tests/shell/lib/perf_record.sh | 52 ++++++
tools/perf/tests/shell/lock_contention.sh | 30 +--
tools/perf/tests/shell/pipe_test.sh | 4 +-
tools/perf/tests/shell/record.sh | 172 +++++++++---------
tools/perf/tests/shell/record_lbr.sh | 50 +++--
tools/perf/tests/shell/record_offcpu.sh | 12 +-
tools/perf/tests/shell/stat_all_metrics.sh | 65 ++++---
tools/perf/tests/shell/stat_all_pfm.sh | 2 +-
tools/perf/tests/shell/stat_bpf_counters.sh | 27 ++-
tools/perf/tests/shell/stat_metrics_values.sh | 9 +-
tools/perf/tests/shell/test_brstack.sh | 6 +-
tools/perf/tests/shell/trace_record_replay.sh | 18 +-
tools/perf/tests/workloads/noploop.c | 15 +-
tools/perf/tests/workloads/thloop.c | 14 +-
tools/perf/util/metricgroup.c | 4 +-
tools/perf/util/parse-events.c | 22 ++-
tools/perf/util/parse-events.h | 17 +-
24 files changed, 494 insertions(+), 277 deletions(-)
create mode 100644 tools/perf/tests/shell/lib/perf_record.sh

--
2.54.0.1136.gdb2ca164c4-goog