diff options
Diffstat (limited to 'tools/perf/tests/shell/test_data_symbol.sh')
-rwxr-xr-x | tools/perf/tests/shell/test_data_symbol.sh | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/tools/perf/tests/shell/test_data_symbol.sh b/tools/perf/tests/shell/test_data_symbol.sh index cd6eb54d235d..69bb6fe86c50 100755 --- a/tools/perf/tests/shell/test_data_symbol.sh +++ b/tools/perf/tests/shell/test_data_symbol.sh @@ -5,19 +5,13 @@ # Leo Yan <leo.yan@linaro.org>, 2022 skip_if_no_mem_event() { - perf mem record -e list 2>&1 | egrep -q 'available' && return 0 + perf mem record -e list 2>&1 | grep -E -q 'available' && return 0 return 2 } skip_if_no_mem_event || exit 2 -# skip if there's no compiler -if ! [ -x "$(command -v cc)" ]; then - echo "skip: no compiler, install gcc" - exit 2 -fi - -TEST_PROGRAM=$(mktemp /tmp/__perf_test.program.XXXXX) +TEST_PROGRAM="perf test -w datasym" PERF_DATA=$(mktemp /tmp/__perf_test.perf.data.XXXXX) check_result() { @@ -45,37 +39,16 @@ cleanup_files() { echo "Cleaning up files..." rm -f ${PERF_DATA} - rm -f ${TEST_PROGRAM} } trap cleanup_files exit term int -# compile test program -echo "Compiling test program..." -cat << EOF | cc -o ${TEST_PROGRAM} -x c - -typedef struct _buf { - char data1; - char reserved[55]; - char data2; -} buf __attribute__((aligned(64))); - -static buf buf1; - -int main(void) { - for (;;) { - buf1.data1++; - buf1.data2 += buf1.data1; - } - return 0; -} -EOF - echo "Recording workload..." # perf mem/c2c internally uses IBS PMU on AMD CPU which doesn't support # user/kernel filtering and per-process monitoring, spin program on # specific CPU and test in per-CPU mode. -is_amd=$(egrep -c 'vendor_id.*AuthenticAMD' /proc/cpuinfo) +is_amd=$(grep -E -c 'vendor_id.*AuthenticAMD' /proc/cpuinfo) if (($is_amd >= 1)); then perf mem record -o ${PERF_DATA} -C 0 -- taskset -c 0 $TEST_PROGRAM & else |