1 #!/bin/sh 2 # perf all libpfm4 events test 3 # SPDX-License-Identifier: GPL-2.0 4 5 if perf version --build-options | grep HAVE_LIBPFM | grep -q OFF 6 then 7 echo "Skipping, no libpfm4 support" 8 exit 2 9 fi 10 11 err=0 12 for p in $(perf list --raw-dump pfm) 13 do 14 if echo "$p" | grep -q unc_ 15 then 16 echo "Skipping uncore event '$p' that may require additional options." 17 continue 18 fi 19 echo "Testing $p" 20 result=$(perf stat --pfm-events "$p" true 2>&1) 21 x=$? 22 if echo "$result" | grep -q "failed to parse event $p : invalid or missing unit mask" 23 then 24 continue 25 fi 26 if test "$x" -ne "0" 27 then 28 echo "Unexpected exit code '$x'" 29 err=1 30 fi 31 if ! echo "$result" | grep -q "$p" && ! echo "$result" | grep -q "<not supported>" 32 then 33 # We failed to see the event and it is supported. Possibly the workload was 34 # too small so retry with something longer. 35 result=$(perf stat --pfm-events "$p" perf bench internals synthesize 2>&1) 36 x=$? 37 if test "$x" -ne "0" 38 then 39 echo "Unexpected exit code '$x'" 40 err=1 41 fi 42 if ! echo "$result" | grep -q "$p" 43 then 44 echo "Event '$p' not printed in:" 45 echo "$result" 46 err=1 47 fi 48 fi 49 done 50 51 exit "$err"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.