[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20241115161600.228994-1-james.clark@linaro.org>
Date: Fri, 15 Nov 2024 16:15:59 +0000
From: James Clark <james.clark@...aro.org>
To: linux-perf-users@...r.kernel.org
Cc: James Clark <james.clark@...aro.org>,
Peter Zijlstra <peterz@...radead.org>,
Ingo Molnar <mingo@...hat.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Jiri Olsa <jolsa@...nel.org>,
Ian Rogers <irogers@...gle.com>,
Adrian Hunter <adrian.hunter@...el.com>,
"Liang, Kan" <kan.liang@...ux.intel.com>,
Dapeng Mi <dapeng1.mi@...ux.intel.com>,
Veronika Molnarova <vmolnaro@...hat.com>,
linux-kernel@...r.kernel.org
Subject: [PATCH] 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.
Signed-off-by: James Clark <james.clark@...aro.org>
---
tools/perf/tests/shell/record.sh | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/tools/perf/tests/shell/record.sh b/tools/perf/tests/shell/record.sh
index 85d512f5a126..0fc7a909ae9b 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]"
}
--
2.34.1
Powered by blists - more mailing lists