Loading...
1#!/bin/bash
2# perf all metrics test
3# SPDX-License-Identifier: GPL-2.0
4
5err=0
6for m in $(perf list --raw-dump metrics); do
7 echo "Testing $m"
8 result=$(perf stat -M "$m" true 2>&1)
9 if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "<not supported>" ]]
10 then
11 continue
12 fi
13 # Failed so try system wide.
14 result=$(perf stat -M "$m" -a sleep 0.01 2>&1)
15 if [[ "$result" =~ ${m:0:50} ]]
16 then
17 continue
18 fi
19 # Failed again, possibly the workload was too small so retry with something
20 # longer.
21 result=$(perf stat -M "$m" perf bench internals synthesize 2>&1)
22 if [[ "$result" =~ ${m:0:50} ]]
23 then
24 continue
25 fi
26 echo "Metric '$m' not printed in:"
27 echo "$result"
28 if [[ "$err" != "1" ]]
29 then
30 err=2
31 if [[ "$result" =~ "FP_ARITH" || "$result" =~ "AMX" ]]
32 then
33 echo "Skip, not fail, for FP issues"
34 elif [[ "$result" =~ "PMM" ]]
35 then
36 echo "Skip, not fail, for Optane memory issues"
37 else
38 err=1
39 fi
40 fi
41done
42
43exit "$err"