1 #!/bin/sh 2 # perf record sideband tests 3 # SPDX-License-Identifier: GPL-2.0 4 5 set -e 6 7 err=0 8 perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) 9 10 cleanup() 11 { 12 rm -rf ${perfdata} 13 trap - EXIT TERM INT 14 } 15 16 trap_cleanup() 17 { 18 cleanup 19 exit 1 20 } 21 trap trap_cleanup EXIT TERM INT 22 23 can_cpu_wide() 24 { 25 if ! perf record -o ${perfdata} -BN --no-bpf-event -C $1 true > /dev/null 2>&1 26 then 27 echo "record sideband test [Skipped cannot record cpu$1]" 28 err=2 29 fi 30 31 rm -f ${perfdata} 32 return $err 33 } 34 35 test_system_wide_tracking() 36 { 37 # Need CPU 0 and CPU 1 38 can_cpu_wide 0 || return 0 39 can_cpu_wide 1 || return 0 40 41 # Record on CPU 0 a task running on CPU 1 42 perf record -BN --no-bpf-event -o ${perfdata} -C 0 -- taskset --cpu-list 1 true 43 44 # Should get MMAP events from CPU 1 45 mmap_cnt=`perf script -i ${perfdata} --show-mmap-events -C 1 2>/dev/null | grep MMAP | wc -l` 46 47 if [ ${mmap_cnt} -gt 0 ] ; then 48 return 0 49 fi 50 51 echo "Failed to record MMAP events on CPU 1 when tracing CPU 0" 52 return 1 53 } 54 55 test_system_wide_tracking 56 57 cleanup 58 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.