0001
0002
0003
0004
0005 set -e
0006
0007
0008 perf list | grep -q 'intel_pt//' || exit 2
0009
0010 skip_cnt=0
0011 ok_cnt=0
0012 err_cnt=0
0013
0014 tmpfile=`mktemp`
0015 perfdatafile=`mktemp`
0016
0017 can_cpu_wide()
0018 {
0019 perf record -o ${tmpfile} -B -N --no-bpf-event -e dummy:u -C $1 true 2>&1 >/dev/null || return 2
0020 return 0
0021 }
0022
0023 test_system_wide_side_band()
0024 {
0025
0026 can_cpu_wide 0 || return $?
0027 can_cpu_wide 1 || return $?
0028
0029
0030 perf record -B -N --no-bpf-event -o ${perfdatafile} -e intel_pt//u -C 0 -- taskset --cpu-list 1 uname
0031
0032
0033 mmap_cnt=`perf script -i ${perfdatafile} --no-itrace --show-mmap-events -C 1 2>/dev/null | grep MMAP | wc -l`
0034
0035 if [ ${mmap_cnt} -gt 0 ] ; then
0036 return 0
0037 fi
0038
0039 echo "Failed to record MMAP events on CPU 1 when tracing CPU 0"
0040 return 1
0041 }
0042
0043 count_result()
0044 {
0045 if [ $1 -eq 2 ] ; then
0046 skip_cnt=`expr ${skip_cnt} \+ 1`
0047 return
0048 fi
0049 if [ $1 -eq 0 ] ; then
0050 ok_cnt=`expr ${ok_cnt} \+ 1`
0051 return
0052 fi
0053 err_cnt=`expr ${err_cnt} \+ 1`
0054 }
0055
0056 test_system_wide_side_band
0057
0058 count_result $?
0059
0060 rm -f ${tmpfile}
0061 rm -f ${perfdatafile}
0062
0063 if [ ${err_cnt} -gt 0 ] ; then
0064 exit 1
0065 fi
0066
0067 if [ ${ok_cnt} -gt 0 ] ; then
0068 exit 0
0069 fi
0070
0071 exit 2