| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/bin/bash
- # Perf event open fallback test
- # SPDX-License-Identifier: GPL-2.0
- skip_cnt=0
- ok_cnt=0
- err_cnt=0
- perf_record()
- {
- perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
- }
- test_decrease_precise_ip()
- {
- echo "Decrease precise ip test"
- perf list pmu | grep -q 'cycles' || return 2
- if ! perf_record -e cycles; then
- return 2
- fi
- # It should reduce precision level down to 0 if needed.
- if ! perf_record -e cycles:P; then
- return 1
- fi
- return 0
- }
- test_decrease_precise_ip_complicated()
- {
- echo "Decrease precise ip test (complicated case)"
- perf list pmu | grep -q 'mem-loads-aux' || return 2
- if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then
- return 1
- fi
- return 0
- }
- count_result()
- {
- if [ "$1" -eq 2 ] ; then
- skip_cnt=$((skip_cnt + 1))
- return
- fi
- if [ "$1" -eq 0 ] ; then
- ok_cnt=$((ok_cnt + 1))
- return
- fi
- err_cnt=$((err_cnt + 1))
- }
- ret=0
- test_decrease_precise_ip || ret=$? ; count_result $ret ; ret=0
- test_decrease_precise_ip_complicated || ret=$? ; count_result $ret ; ret=0
- cleanup
- if [ ${err_cnt} -gt 0 ] ; then
- exit 1
- fi
- if [ ${ok_cnt} -gt 0 ] ; then
- exit 0
- fi
- # Skip
- exit 2
|