162306a36Sopenharmony_ci#!/bin/bash 262306a36Sopenharmony_ci# perf all metrics test 362306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 462306a36Sopenharmony_ci 562306a36Sopenharmony_cierr=0 662306a36Sopenharmony_cifor m in $(perf list --raw-dump metrics); do 762306a36Sopenharmony_ci echo "Testing $m" 862306a36Sopenharmony_ci result=$(perf stat -M "$m" true 2>&1) 962306a36Sopenharmony_ci if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "<not supported>" ]] 1062306a36Sopenharmony_ci then 1162306a36Sopenharmony_ci continue 1262306a36Sopenharmony_ci fi 1362306a36Sopenharmony_ci # Failed so try system wide. 1462306a36Sopenharmony_ci result=$(perf stat -M "$m" -a sleep 0.01 2>&1) 1562306a36Sopenharmony_ci if [[ "$result" =~ ${m:0:50} ]] 1662306a36Sopenharmony_ci then 1762306a36Sopenharmony_ci continue 1862306a36Sopenharmony_ci fi 1962306a36Sopenharmony_ci # Failed again, possibly the workload was too small so retry with something 2062306a36Sopenharmony_ci # longer. 2162306a36Sopenharmony_ci result=$(perf stat -M "$m" perf bench internals synthesize 2>&1) 2262306a36Sopenharmony_ci if [[ "$result" =~ ${m:0:50} ]] 2362306a36Sopenharmony_ci then 2462306a36Sopenharmony_ci continue 2562306a36Sopenharmony_ci fi 2662306a36Sopenharmony_ci echo "Metric '$m' not printed in:" 2762306a36Sopenharmony_ci echo "$result" 2862306a36Sopenharmony_ci if [[ "$err" != "1" ]] 2962306a36Sopenharmony_ci then 3062306a36Sopenharmony_ci err=2 3162306a36Sopenharmony_ci if [[ "$result" =~ "FP_ARITH" || "$result" =~ "AMX" ]] 3262306a36Sopenharmony_ci then 3362306a36Sopenharmony_ci echo "Skip, not fail, for FP issues" 3462306a36Sopenharmony_ci elif [[ "$result" =~ "PMM" ]] 3562306a36Sopenharmony_ci then 3662306a36Sopenharmony_ci echo "Skip, not fail, for Optane memory issues" 3762306a36Sopenharmony_ci else 3862306a36Sopenharmony_ci err=1 3962306a36Sopenharmony_ci fi 4062306a36Sopenharmony_ci fi 4162306a36Sopenharmony_cidone 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ciexit "$err" 44