mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 03:53:37 +02:00
perf test: Fix perf record test for precise_max
On s390 the event instructions can not be used for recording. This event is only supported by perf stat. Test that each event cycles and instructions supports sampling. If the event can not be sampled, skip it. Signed-off-by: Thomas Richter <tmricht@linux.ibm.com> Suggested-by: James Clark <james.clark@linaro.org> Reviewed-by: James Clark <james.clark@linaro.org> Link: https://lore.kernel.org/r/20250131102756.4185235-2-tmricht@linux.ibm.com Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
23e0a63c6d
commit
859199431d
|
|
@ -273,27 +273,42 @@ test_topdown_leader_sampling() {
|
|||
}
|
||||
|
||||
test_precise_max() {
|
||||
local -i skipped=0
|
||||
|
||||
echo "precise_max attribute test"
|
||||
if ! perf stat -e "cycles,instructions" true 2> /dev/null
|
||||
# Just to make sure event cycles is supported for sampling
|
||||
if perf record -o "${perfdata}" -e "cycles" true 2> /dev/null
|
||||
then
|
||||
if ! perf record -o "${perfdata}" -e "cycles:P" true 2> /dev/null
|
||||
then
|
||||
echo "precise_max attribute [Failed cycles:P event]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
else
|
||||
echo "precise_max attribute [Skipped no cycles:P event]"
|
||||
((skipped+=1))
|
||||
fi
|
||||
# On s390 event instructions is not supported for perf record
|
||||
if perf record -o "${perfdata}" -e "instructions" true 2> /dev/null
|
||||
then
|
||||
# On AMD, cycles and instructions events are treated differently
|
||||
if ! perf record -o "${perfdata}" -e "instructions:P" true 2> /dev/null
|
||||
then
|
||||
echo "precise_max attribute [Failed instructions:P event]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
else
|
||||
echo "precise_max attribute [Skipped no instructions:P event]"
|
||||
((skipped+=1))
|
||||
fi
|
||||
if [ $skipped -eq 2 ]
|
||||
then
|
||||
echo "precise_max attribute [Skipped no hardware events]"
|
||||
return
|
||||
else
|
||||
echo "precise_max attribute test [Success]"
|
||||
fi
|
||||
# Just to make sure it doesn't fail
|
||||
if ! perf record -o "${perfdata}" -e "cycles:P" true 2> /dev/null
|
||||
then
|
||||
echo "precise_max attribute [Failed cycles:P event]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
# On AMD, cycles and instructions events are treated differently
|
||||
if ! perf record -o "${perfdata}" -e "instructions:P" true 2> /dev/null
|
||||
then
|
||||
echo "precise_max attribute [Failed instructions:P event]"
|
||||
err=1
|
||||
return
|
||||
fi
|
||||
echo "precise_max attribute test [Success]"
|
||||
}
|
||||
|
||||
# raise the limit of file descriptors to minimum
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user