From: James Clark Date: Fri, 15 Nov 2024 16:15:59 +0000 (+0000) Subject: perf tests: Make leader sampling test work without branch event X-Git-Tag: v6.13-rc1~68^2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=180fd0c1eac7cd8c5aa9a9f8b54088a61d9e05db;p=thirdparty%2Fkernel%2Flinux.git perf tests: Make leader sampling test work without branch event Arm a57 only has speculative branch events so this test fails there. The test doesn't depend on branch instructions so change it to instructions which is pretty much guaranteed to be everywhere. The test_branch_counter() test above already tests for the existence of the branches event and skips if its not present. Reviewed-by: Ian Rogers Signed-off-by: James Clark Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Dapeng Mi Cc: Ingo Molnar Cc: Jiri Olsa Cc: Kan Liang Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Veronika Molnarova Link: https://lore.kernel.org/r/20241115161600.228994-1-james.clark@linaro.org Signed-off-by: Arnaldo Carvalho de Melo --- diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh index 85d512f5a1263..0fc7a909ae9b5 100755 --- a/tools/perf/tests/shell/record.sh +++ b/tools/perf/tests/shell/record.sh @@ -231,7 +231,8 @@ test_cgroup() { test_leader_sampling() { echo "Basic leader sampling test" - if ! perf record -o "${perfdata}" -e "{branches,branches}:Su" perf test -w brstack 2> /dev/null + if ! perf record -o "${perfdata}" -e "{instructions,instructions}:Su" -- \ + perf test -w brstack 2> /dev/null then echo "Leader sampling [Failed record]" err=1 @@ -241,16 +242,16 @@ test_leader_sampling() { perf script -i "${perfdata}" > $script_output while IFS= read -r line do - # Check if the two branches counts are equal in each record - branches=$(echo $line | awk '{for(i=1;i<=NF;i++) if($i=="branches:") print $(i-1)}') - if [ $(($index%2)) -ne 0 ] && [ ${branches}x != ${prev_branches}x ] + # Check if the two instruction counts are equal in each record + instructions=$(echo $line | awk '{for(i=1;i<=NF;i++) if($i=="instructions:") print $(i-1)}') + if [ $(($index%2)) -ne 0 ] && [ ${instructions}x != ${prev_instructions}x ] then - echo "Leader sampling [Failed inconsistent branches count]" + echo "Leader sampling [Failed inconsistent instructions count]" err=1 return fi index=$(($index+1)) - prev_branches=$branches + prev_instructions=$instructions done < $script_output echo "Basic leader sampling test [Success]" }