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" 44