* [Patch v4] perf tests: Add auto counter reload (ACR) sampling test
@ 2026-06-24 9:33 Dapeng Mi
2026-06-24 9:47 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Dapeng Mi @ 2026-06-24 9:33 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Ian Rogers, Adrian Hunter, Alexander Shishkin
Cc: linux-perf-users, linux-kernel, Zide Chen, Falcon Thomas,
Dapeng Mi, Xudong Hao, Dapeng Mi
Add auto counter reload sampling test to verify that the intended event
records can be captured and the self-reloaded events won't generate any
records.
Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com>
---
V4: Remove model-specific ACR sampling test in ratio_to_prev test to
avoid false positive. Some hybrid platforms only support ACR on E-cores,
e.g., PTL. If the test process is scheduled on P-core, it leads to false
positive since P-core doesn't support ACR. test_acr_sampling() is
already fair enough to validate ACR sampling functionalities.
History:
V3: https://lore.kernel.org/all/20260421045511.2401316-1-dapeng1.mi@linux.intel.com/
V2: https://lore.kernel.org/all/20260420025501.2133495-1-dapeng1.mi@linux.intel.com/
v1: https://lore.kernel.org/all/20260413010920.546501-1-dapeng1.mi@linux.intel.com/
tools/perf/tests/shell/record.sh | 43 ++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
index 7cb81cf3444a..5819f11ad3a9 100755
--- a/tools/perf/tests/shell/record.sh
+++ b/tools/perf/tests/shell/record.sh
@@ -402,6 +402,48 @@ test_callgraph() {
echo "Callgraph test [Success]"
}
+test_acr_sampling() {
+ events="{instructions/period=40000,acr_mask=0x2/u,cycles/period=20000,acr_mask=0x3/u}"
+ pebs_events="{instructions/period=40000,acr_mask=0x2/pu,cycles/period=20000,acr_mask=0x3/u}"
+ echo "Auto counter reload (ACR) sampling test"
+ if ! perf record -o "${perfdata}" -e "${events}" ${testprog} 2> /dev/null
+ then
+ echo "Auto counter reload sampling [Skipped not supported]"
+ return
+ fi
+ if ! perf script -i "${perfdata}" -F event | grep -q "instructions"
+ then
+ echo "Auto counter reload sampling [Failed missing instructions event]"
+ err=1
+ return
+ fi
+ if perf script -i "${perfdata}" -F event | grep -q "cycles"
+ then
+ echo "Auto counter reload sampling [Failed cycles event shouldn't be sampled]"
+ err=1
+ return
+ fi
+ if ! perf record -o "${perfdata}" -e "${pebs_events}" ${testprog} 2> /dev/null
+ then
+ echo "Auto counter reload PEBS sampling [Skipped not supported]"
+ echo "Auto counter reload sampling [Success]"
+ return
+ fi
+ if ! perf script -i "${perfdata}" -F event | grep -q "instructions"
+ then
+ echo "Auto counter reload PEBS sampling [Failed missing instructions event]"
+ err=1
+ return
+ fi
+ if perf script -i "${perfdata}" -F event | grep -q "cycles"
+ then
+ echo "Auto counter reload PEBS sampling [Failed cycles event shouldn't be sampled]"
+ err=1
+ return
+ fi
+ echo "Auto counter reload sampling [Success]"
+}
+
test_ratio_to_prev() {
echo "ratio-to-prev test"
if ! perf record -o /dev/null -e "{instructions, cycles/period=100000,ratio-to-prev=0.5/}" \
@@ -457,6 +499,7 @@ test_leader_sampling
test_topdown_leader_sampling
test_precise_max
test_callgraph
+test_acr_sampling
test_ratio_to_prev
# restore the default value
base-commit: 40db90ac9f66c8246c1746c56d397283d161655c
--
2.34.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Patch v4] perf tests: Add auto counter reload (ACR) sampling test
2026-06-24 9:33 [Patch v4] perf tests: Add auto counter reload (ACR) sampling test Dapeng Mi
@ 2026-06-24 9:47 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-06-24 9:47 UTC (permalink / raw)
To: Dapeng Mi; +Cc: linux-perf-users
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Test `test_acr_sampling` is flaky because it structurally relies on the `thloop` workload sustaining an IPC > 2.0.
--
commit 8d4447d6783576282b44d2b951b516b17d5c46b1
Author: Dapeng Mi <dapeng1.mi@linux.intel.com>
perf tests: Add auto counter reload (ACR) sampling test
This commit adds a new sampling test to verify that the intended event records
can be captured and that self-reloaded events do not generate any records.
> diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
> index 7cb81cf3444a7..5819f11ad3a90 100755
> --- a/tools/perf/tests/shell/record.sh
> +++ b/tools/perf/tests/shell/record.sh
[ ... ]
> @@ -402,6 +402,48 @@ test_callgraph() {
> echo "Callgraph test [Success]"
> }
>
> +test_acr_sampling() {
> + events="{instructions/period=40000,acr_mask=0x2/u,cycles/period=20000,acr_mask=0x3/u}"
> + pebs_events="{instructions/period=40000,acr_mask=0x2/pu,cycles/period=20000,acr_mask=0x3/u}"
[Severity: Medium]
Does this test configuration require the workload to sustain an IPC greater
than 2.0 to pass?
With acr_mask=0x3 on the cycles event, if cycles reaches 20000 before
instructions reaches 40000, both counters will automatically reload and no
samples will be generated.
> + echo "Auto counter reload (ACR) sampling test"
> + if ! perf record -o "${perfdata}" -e "${events}" ${testprog} 2> /dev/null
> + then
> + echo "Auto counter reload sampling [Skipped not supported]"
> + return
> + fi
> + if ! perf script -i "${perfdata}" -F event | grep -q "instructions"
If the actual IPC drops to 2.0 or lower (which might happen due to SMT
contention, execution on E-cores, or cache effects), the cycles event will
repeatedly overflow first. This means zero samples will be recorded, and
the grep check here will fail.
Should the event periods be adjusted to tolerate lower IPC values?
> + then
> + echo "Auto counter reload sampling [Failed missing instructions event]"
> + err=1
> + return
> + fi
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260624093316.1439582-1-dapeng1.mi@linux.intel.com?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-06-24 9:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-24 9:33 [Patch v4] perf tests: Add auto counter reload (ACR) sampling test Dapeng Mi
2026-06-24 9:47 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox