* [PATCH v1] perf test all metrics: Fully ignore Default metric failures
@ 2025-11-19 19:30 Ian Rogers
2025-11-20 7:37 ` Thomas Richter
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Ian Rogers @ 2025-11-19 19:30 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Alexander Shishkin, Jiri Olsa, Ian Rogers,
Adrian Hunter, linux-perf-users, linux-kernel, James Clark,
Thomas Richter
Determine if a metric is default from `perf list --raw-dump $m` eg:
```
$ perf list --raw-dump l1_prefetch_miss_rate
Default4 l1_prefetch_miss_rate
```
If a metric has "not supported" or "no supported events" then ignore
these failures for default metrics. Tidy up the skip/fail messages in
the output to make them easier to spot/read.
Reported-by: Thomas Richter <tmricht@linux.ibm.com>
Closes: https://lore.kernel.org/linux-perf-users/20251119104751.51960-1-tmricht@linux.ibm.com/
Reported-by: Namhyung Kim <namhyung@kernel.org>
Reported-by: James Clark <james.clark@linaro.org>
Closes: https://lore.kernel.org/lkml/aRi9xnwdLh3Dir9f@google.com/
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/tests/shell/stat_all_metrics.sh | 27 ++++++++++++++--------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/tools/perf/tests/shell/stat_all_metrics.sh b/tools/perf/tests/shell/stat_all_metrics.sh
index a7edf01b3943..3dabb39c7cc8 100755
--- a/tools/perf/tests/shell/stat_all_metrics.sh
+++ b/tools/perf/tests/shell/stat_all_metrics.sh
@@ -27,19 +27,20 @@ for m in $(perf list --raw-dump metrics); do
fi
if [[ "$result" =~ "Cannot resolve IDs for" || "$result" =~ "No supported events found" ]]
then
- if [[ "$m" == @(l1_prefetch_miss_rate|stalled_cycles_per_instruction) ]]
+ if [[ $(perf list --raw-dump $m) == "Default"* ]]
then
- # Default metrics that may use unsupported events.
+ echo "[Ignored $m] failed but as a Default metric this can be expected"
+ echo $result
continue
fi
- echo "Metric contains missing events"
+ echo "[Failed $m] Metric contains missing events"
echo $result
err=1 # Fail
continue
elif [[ "$result" =~ \
"Access to performance monitoring and observability operations is limited" ]]
then
- echo "Permission failure"
+ echo "[Skipped $m] Permission failure"
echo $result
if [[ $err -eq 0 ]]
then
@@ -48,7 +49,7 @@ for m in $(perf list --raw-dump metrics); do
continue
elif [[ "$result" =~ "in per-thread mode, enable system wide" ]]
then
- echo "Permissions - need system wide mode"
+ echo "[Skipped $m] Permissions - need system wide mode"
echo $result
if [[ $err -eq 0 ]]
then
@@ -57,7 +58,13 @@ for m in $(perf list --raw-dump metrics); do
continue
elif [[ "$result" =~ "<not supported>" ]]
then
- echo "Not supported events"
+ if [[ $(perf list --raw-dump $m) == "Default"* ]]
+ then
+ echo "[Ignored $m] failed but as a Default metric this can be expected"
+ echo $result
+ continue
+ fi
+ echo "[Skipped $m] Not supported events"
echo $result
if [[ $err -eq 0 ]]
then
@@ -66,7 +73,7 @@ for m in $(perf list --raw-dump metrics); do
continue
elif [[ "$result" =~ "<not counted>" ]]
then
- echo "Not counted events"
+ echo "[Skipped $m] Not counted events"
echo $result
if [[ $err -eq 0 ]]
then
@@ -75,7 +82,7 @@ for m in $(perf list --raw-dump metrics); do
continue
elif [[ "$result" =~ "FP_ARITH" || "$result" =~ "AMX" ]]
then
- echo "FP issues"
+ echo "[Skipped $m] FP issues"
echo $result
if [[ $err -eq 0 ]]
then
@@ -84,7 +91,7 @@ for m in $(perf list --raw-dump metrics); do
continue
elif [[ "$result" =~ "PMM" ]]
then
- echo "Optane memory issues"
+ echo "[Skipped $m] Optane memory issues"
echo $result
if [[ $err -eq 0 ]]
then
@@ -101,7 +108,7 @@ for m in $(perf list --raw-dump metrics); do
# No error result and metric shown.
continue
fi
- echo "Metric '$m' has non-zero error '$result_err' or not printed in:"
+ echo "[Failed $m] has non-zero error '$result_err' or not printed in:"
echo "$result"
err=1
done
--
2.52.0.rc1.455.g30608eb744-goog
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v1] perf test all metrics: Fully ignore Default metric failures
2025-11-19 19:30 [PATCH v1] perf test all metrics: Fully ignore Default metric failures Ian Rogers
@ 2025-11-20 7:37 ` Thomas Richter
2025-11-20 14:19 ` James Clark
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Thomas Richter @ 2025-11-20 7:37 UTC (permalink / raw)
To: Ian Rogers, Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
linux-perf-users, linux-kernel, James Clark
On 11/19/25 20:30, Ian Rogers wrote:
> Reported-by: Thomas Richter <tmricht@linux.ibm.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Thanks for fixing this.
--
Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany
--
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Wolfgang Wendt
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v1] perf test all metrics: Fully ignore Default metric failures
2025-11-19 19:30 [PATCH v1] perf test all metrics: Fully ignore Default metric failures Ian Rogers
2025-11-20 7:37 ` Thomas Richter
@ 2025-11-20 14:19 ` James Clark
2025-11-20 19:08 ` Namhyung Kim
2025-11-21 20:02 ` Namhyung Kim
3 siblings, 0 replies; 5+ messages in thread
From: James Clark @ 2025-11-20 14:19 UTC (permalink / raw)
To: Ian Rogers
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Namhyung Kim, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
linux-perf-users, linux-kernel, Thomas Richter
On 19/11/2025 7:30 pm, Ian Rogers wrote:
> Determine if a metric is default from `perf list --raw-dump $m` eg:
> ```
> $ perf list --raw-dump l1_prefetch_miss_rate
> Default4 l1_prefetch_miss_rate
> ```
> If a metric has "not supported" or "no supported events" then ignore
> these failures for default metrics. Tidy up the skip/fail messages in
> the output to make them easier to spot/read.
>
> Reported-by: Thomas Richter <tmricht@linux.ibm.com>
> Closes: https://lore.kernel.org/linux-perf-users/20251119104751.51960-1-tmricht@linux.ibm.com/
> Reported-by: Namhyung Kim <namhyung@kernel.org>
> Reported-by: James Clark <james.clark@linaro.org>
> Closes: https://lore.kernel.org/lkml/aRi9xnwdLh3Dir9f@google.com/
> Signed-off-by: Ian Rogers <irogers@google.com>
Reviewed-by: James Clark <james.clark@linaro.org>
> ---
> tools/perf/tests/shell/stat_all_metrics.sh | 27 ++++++++++++++--------
> 1 file changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/tools/perf/tests/shell/stat_all_metrics.sh b/tools/perf/tests/shell/stat_all_metrics.sh
> index a7edf01b3943..3dabb39c7cc8 100755
> --- a/tools/perf/tests/shell/stat_all_metrics.sh
> +++ b/tools/perf/tests/shell/stat_all_metrics.sh
> @@ -27,19 +27,20 @@ for m in $(perf list --raw-dump metrics); do
> fi
> if [[ "$result" =~ "Cannot resolve IDs for" || "$result" =~ "No supported events found" ]]
> then
> - if [[ "$m" == @(l1_prefetch_miss_rate|stalled_cycles_per_instruction) ]]
> + if [[ $(perf list --raw-dump $m) == "Default"* ]]
> then
> - # Default metrics that may use unsupported events.
> + echo "[Ignored $m] failed but as a Default metric this can be expected"
> + echo $result
> continue
> fi
> - echo "Metric contains missing events"
> + echo "[Failed $m] Metric contains missing events"
> echo $result
> err=1 # Fail
> continue
> elif [[ "$result" =~ \
> "Access to performance monitoring and observability operations is limited" ]]
> then
> - echo "Permission failure"
> + echo "[Skipped $m] Permission failure"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -48,7 +49,7 @@ for m in $(perf list --raw-dump metrics); do
> continue
> elif [[ "$result" =~ "in per-thread mode, enable system wide" ]]
> then
> - echo "Permissions - need system wide mode"
> + echo "[Skipped $m] Permissions - need system wide mode"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -57,7 +58,13 @@ for m in $(perf list --raw-dump metrics); do
> continue
> elif [[ "$result" =~ "<not supported>" ]]
> then
> - echo "Not supported events"
> + if [[ $(perf list --raw-dump $m) == "Default"* ]]
> + then
> + echo "[Ignored $m] failed but as a Default metric this can be expected"
> + echo $result
> + continue
> + fi
> + echo "[Skipped $m] Not supported events"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -66,7 +73,7 @@ for m in $(perf list --raw-dump metrics); do
> continue
> elif [[ "$result" =~ "<not counted>" ]]
> then
> - echo "Not counted events"
> + echo "[Skipped $m] Not counted events"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -75,7 +82,7 @@ for m in $(perf list --raw-dump metrics); do
> continue
> elif [[ "$result" =~ "FP_ARITH" || "$result" =~ "AMX" ]]
> then
> - echo "FP issues"
> + echo "[Skipped $m] FP issues"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -84,7 +91,7 @@ for m in $(perf list --raw-dump metrics); do
> continue
> elif [[ "$result" =~ "PMM" ]]
> then
> - echo "Optane memory issues"
> + echo "[Skipped $m] Optane memory issues"
> echo $result
> if [[ $err -eq 0 ]]
> then
> @@ -101,7 +108,7 @@ for m in $(perf list --raw-dump metrics); do
> # No error result and metric shown.
> continue
> fi
> - echo "Metric '$m' has non-zero error '$result_err' or not printed in:"
> + echo "[Failed $m] has non-zero error '$result_err' or not printed in:"
> echo "$result"
> err=1
> done
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] perf test all metrics: Fully ignore Default metric failures
2025-11-19 19:30 [PATCH v1] perf test all metrics: Fully ignore Default metric failures Ian Rogers
2025-11-20 7:37 ` Thomas Richter
2025-11-20 14:19 ` James Clark
@ 2025-11-20 19:08 ` Namhyung Kim
2025-11-21 20:02 ` Namhyung Kim
3 siblings, 0 replies; 5+ messages in thread
From: Namhyung Kim @ 2025-11-20 19:08 UTC (permalink / raw)
To: Ian Rogers
Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Alexander Shishkin, Jiri Olsa, Adrian Hunter, linux-perf-users,
linux-kernel, James Clark, Thomas Richter
On Wed, Nov 19, 2025 at 11:30:47AM -0800, Ian Rogers wrote:
> Determine if a metric is default from `perf list --raw-dump $m` eg:
> ```
> $ perf list --raw-dump l1_prefetch_miss_rate
> Default4 l1_prefetch_miss_rate
> ```
> If a metric has "not supported" or "no supported events" then ignore
> these failures for default metrics. Tidy up the skip/fail messages in
> the output to make them easier to spot/read.
>
> Reported-by: Thomas Richter <tmricht@linux.ibm.com>
> Closes: https://lore.kernel.org/linux-perf-users/20251119104751.51960-1-tmricht@linux.ibm.com/
> Reported-by: Namhyung Kim <namhyung@kernel.org>
> Reported-by: James Clark <james.clark@linaro.org>
> Closes: https://lore.kernel.org/lkml/aRi9xnwdLh3Dir9f@google.com/
> Signed-off-by: Ian Rogers <irogers@google.com>
Thanks for the fix!
$ sudo ./perf test -vv "all metrics"
103: perf all metrics test:
--- start ---
test child forked, pid 3329979
Testing CPUs_utilized
Testing backend_cycles_idle
[Ignored backend_cycles_idle] failed but as a Default metric this can be expected
Performance counter stats for 'system wide': <not counted> cpu-cycles <not supported> stalled-cycles-backend 0.013059060 seconds time elapsed
Testing branch_frequency
Testing branch_miss_rate
Testing cs_per_second
Testing cycles_frequency
Testing frontend_cycles_idle
Testing insn_per_cycle
Testing migrations_per_second
Testing page_faults_per_second
Testing stalled_cycles_per_instruction
[Ignored stalled_cycles_per_instruction] failed but as a Default metric this can be expected
Error: No supported events found. The stalled-cycles-backend event is not supported.
Testing l1d_miss_rate
Testing llc_miss_rate
[Ignored llc_miss_rate] failed but as a Default metric this can be expected
Error: No supported events found. The LLC-loads event is not supported.
Testing dtlb_miss_rate
Testing itlb_miss_rate
Testing l1i_miss_rate
Testing l1_prefetch_miss_rate
[Ignored l1_prefetch_miss_rate] failed but as a Default metric this can be expected
Performance counter stats for 'system wide': <not counted> L1-dcache-prefetches <not supported> L1-dcache-prefetch-misses 0.012868128 seconds time elapsed
Testing branch_misprediction_ratio
Testing all_remote_links_outbound
Testing nps1_die_to_dram
Testing all_l2_cache_accesses
Testing all_l2_cache_hits
Testing all_l2_cache_misses
Testing ic_fetch_miss_ratio
Testing l2_cache_accesses_from_l2_hwpf
Testing l2_cache_misses_from_l2_hwpf
Testing l3_read_miss_latency
Testing l1_itlb_misses
---- end(0) ----
103: perf all metrics test : Ok
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v1] perf test all metrics: Fully ignore Default metric failures
2025-11-19 19:30 [PATCH v1] perf test all metrics: Fully ignore Default metric failures Ian Rogers
` (2 preceding siblings ...)
2025-11-20 19:08 ` Namhyung Kim
@ 2025-11-21 20:02 ` Namhyung Kim
3 siblings, 0 replies; 5+ messages in thread
From: Namhyung Kim @ 2025-11-21 20:02 UTC (permalink / raw)
To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
Alexander Shishkin, Jiri Olsa, Adrian Hunter, linux-perf-users,
linux-kernel, James Clark, Thomas Richter, Ian Rogers
On Wed, 19 Nov 2025 11:30:47 -0800, Ian Rogers wrote:
> Determine if a metric is default from `perf list --raw-dump $m` eg:
> ```
> $ perf list --raw-dump l1_prefetch_miss_rate
> Default4 l1_prefetch_miss_rate
> ```
> If a metric has "not supported" or "no supported events" then ignore
> these failures for default metrics. Tidy up the skip/fail messages in
> the output to make them easier to spot/read.
>
> [...]
Applied to perf-tools-next, thanks!
Best regards,
Namhyung
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-11-21 20:02 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-19 19:30 [PATCH v1] perf test all metrics: Fully ignore Default metric failures Ian Rogers
2025-11-20 7:37 ` Thomas Richter
2025-11-20 14:19 ` James Clark
2025-11-20 19:08 ` Namhyung Kim
2025-11-21 20:02 ` Namhyung Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox