Metric names are truncated so don't try to match all of one. Allow AMX metrics to skip as floating point ones do. Metrics for optane memory can also skip rather than fail. Add a system wide check for uncore metrics. Restructure code to avoid extensive nesting. Some impetus for this in: https://lore.kernel.org/lkml/d32376b5-5538-ff00-6620-e74ad4b4abf2@huawei.com/ Suggested-by: John Garry <john.garry@huawei.com> Signed-off-by: Ian Rogers <irogers@google.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jiri Olsa <jolsa@kernel.org> Cc: John Garry <john.garry@huawei.com> Cc: Kan Liang <kan.liang@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Link: https://lore.kernel.org/r/20220707153449.202409-2-irogers@google.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
43 lines
992 B
Bash
Executable file
43 lines
992 B
Bash
Executable file
#!/bin/bash
|
|
# perf all metrics test
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
err=0
|
|
for m in $(perf list --raw-dump metrics); do
|
|
echo "Testing $m"
|
|
result=$(perf stat -M "$m" true 2>&1)
|
|
if [[ "$result" =~ "${m:0:50}" ]] || [[ "$result" =~ "<not supported>" ]]
|
|
then
|
|
continue
|
|
fi
|
|
# Failed so try system wide.
|
|
result=$(perf stat -M "$m" -a true 2>&1)
|
|
if [[ "$result" =~ "${m:0:50}" ]]
|
|
then
|
|
continue
|
|
fi
|
|
# Failed again, possibly the workload was too small so retry with something
|
|
# longer.
|
|
result=$(perf stat -M "$m" perf bench internals synthesize 2>&1)
|
|
if [[ "$result" =~ "${m:0:50}" ]]
|
|
then
|
|
continue
|
|
fi
|
|
echo "Metric '$m' not printed in:"
|
|
echo "$result"
|
|
if [[ "$err" != "1" ]]
|
|
then
|
|
err=2
|
|
if [[ "$result" =~ "FP_ARITH" || "$result" =~ "AMX" ]]
|
|
then
|
|
echo "Skip, not fail, for FP issues"
|
|
elif [[ "$result" =~ "PMM" ]]
|
|
then
|
|
echo "Skip, not fail, for Optane memory issues"
|
|
else
|
|
err=1
|
|
fi
|
|
fi
|
|
done
|
|
|
|
exit "$err"
|