Message ID | 20230615073803.54481-2-atrajeev@linux.vnet.ibm.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted | expand |
> On 15-Jun-2023, at 1:08 PM, Athira Rajeev <atrajeev@linux.vnet.ibm.com> wrote: > > Perf all metricgroups test fails as below when perf_event access > is restricted. > > ./perf test -v "perf all metricgroups test" > Testing Memory_BW > Error: > Access to performance monitoring and observability operations is limited. > Enforced MAC policy settings (SELinux) can limit access to performance > — > access to performance monitoring and observability operations for processes > without CAP_PERFMON, CAP_SYS_PTRACE or CAP_SYS_ADMIN Linux capability. > — > test child finished with -1 > ---- end ---- > perf all metricgroups test: FAILED! > > Fix the testcase to skip those metric events which needs perf_event access > explicitly. The exit code of the testcase is based on return code of > the perf stat command ( enabled by set -e option ). Hence save the > exit status in a variable and use that to decide success or fail for the > testcase. > > Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com> > --- > tools/perf/tests/shell/stat_all_metricgroups.sh | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/tests/shell/stat_all_metricgroups.sh b/tools/perf/tests/shell/stat_all_metricgroups.sh > index cb35e488809a..fa86b562676a 100755 > --- a/tools/perf/tests/shell/stat_all_metricgroups.sh > +++ b/tools/perf/tests/shell/stat_all_metricgroups.sh > @@ -2,11 +2,19 @@ > # perf all metricgroups test > # SPDX-License-Identifier: GPL-2.0 > > -set -e > - > for m in $(perf list --raw-dump metricgroups); do > echo "Testing $m" > - perf stat -M "$m" -a true > + result=$(perf stat -M "$m" -a true 2>&1) > + rc=$? > + # Skip if there is no access to perf_events monitoring > + # Otherwise exit based on the return code of perf comamnd. > + if [[ "$result" =~ "Access to performance monitoring and observability operations is limited" ]] > + then > + continue > + else > + [ $rc -ne 0 ] && exit $rc > + fi > + > done Hi, Looking for review comments on this patch. Thanks Athira > > exit 0 > -- > 2.31.1 >
diff --git a/tools/perf/tests/shell/stat_all_metricgroups.sh b/tools/perf/tests/shell/stat_all_metricgroups.sh index cb35e488809a..fa86b562676a 100755 --- a/tools/perf/tests/shell/stat_all_metricgroups.sh +++ b/tools/perf/tests/shell/stat_all_metricgroups.sh @@ -2,11 +2,19 @@ # perf all metricgroups test # SPDX-License-Identifier: GPL-2.0 -set -e - for m in $(perf list --raw-dump metricgroups); do echo "Testing $m" - perf stat -M "$m" -a true + result=$(perf stat -M "$m" -a true 2>&1) + rc=$? + # Skip if there is no access to perf_events monitoring + # Otherwise exit based on the return code of perf comamnd. + if [[ "$result" =~ "Access to performance monitoring and observability operations is limited" ]] + then + continue + else + [ $rc -ne 0 ] && exit $rc + fi + done exit 0
Perf all metricgroups test fails as below when perf_event access is restricted. ./perf test -v "perf all metricgroups test" Testing Memory_BW Error: Access to performance monitoring and observability operations is limited. Enforced MAC policy settings (SELinux) can limit access to performance — access to performance monitoring and observability operations for processes without CAP_PERFMON, CAP_SYS_PTRACE or CAP_SYS_ADMIN Linux capability. — test child finished with -1 ---- end ---- perf all metricgroups test: FAILED! Fix the testcase to skip those metric events which needs perf_event access explicitly. The exit code of the testcase is based on return code of the perf stat command ( enabled by set -e option ). Hence save the exit status in a variable and use that to decide success or fail for the testcase. Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com> --- tools/perf/tests/shell/stat_all_metricgroups.sh | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-)