Loading...
Note: File does not exist in v4.6.
1#!/bin/sh
2# perf all libpfm4 events test
3# SPDX-License-Identifier: GPL-2.0
4
5if perf version --build-options | grep HAVE_LIBPFM | grep -q OFF
6then
7 echo "Skipping, no libpfm4 support"
8 exit 2
9fi
10
11err=0
12for p in $(perf list --raw-dump pfm)
13do
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
49done
50
51exit "$err"