#!/bin/bash # perf all PMU test (exclusive) # SPDX-License-Identifier: GPL-2.0
err=0
result=""
trap_cleanup() { echo"Unexpected signal in ${FUNCNAME[1]}" echo"$result"
exit 1
}
trap trap_cleanup EXIT TERM INT
# Test all PMU events; however exclude parameterized ones (name contains '?') for p in $(perf list --raw-dump pmu | sed 's/[[:graph:]]\+?[[:graph:]]\+[[:space:]]//g') do echo -n "Testing $p -- "
output=$(perf stat -e "$p" true 2>&1)
stat_result=$? ifecho"$output" | grep -q "$p" then # Event seen in output. if [ $stat_result -eq 0 ] && ! echo"$output" | grep -q "" then # Event supported. echo"supported"
continue elifecho"$output" | grep -q "" then # Event not supported, so ignore. echo"not supported"
continue elifecho"$output" | grep -q "No permission to enable" then # No permissions, so ignore. echo"no permission to enable"
continue elifecho"$output" | grep -q "Bad event name" then # Non-existent event. echo"Error: Bad event name" echo"$output"
err=1
continue fi fi
ifecho"$output" | grep -q "Access to performance monitoring and observability operations is limited." then # Access is limited, so ignore. echo"access limited"
continue fi
# We failed to see the event and it is supported. Possibly the workload was # too small so retry with something longer.
output=$(perf stat -e "$p" perf bench internals synthesize 2>&1) ifecho"$output" | grep -q "$p" then # Event seen in output. echo"supported"
continue fi echo"Error: event '$p' not printed in:" echo"$output"
err=1 done
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.