[PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
Athira Rajeev
atrajeev at linux.vnet.ibm.com
Fri Jul 14 02:52:56 AEST 2023
> On 05-Jul-2023, at 11:54 PM, Namhyung Kim <namhyung at kernel.org> wrote:
>
> On Mon, Jul 3, 2023 at 10:04 PM Athira Rajeev
> <atrajeev at linux.vnet.ibm.com> wrote:
>>
>>
>>
>>> On 15-Jun-2023, at 1:08 PM, Athira Rajeev <atrajeev at linux.vnet.ibm.com> wrote:
>>>
>>> Perf all metrics test fails as below when perf_event access
>>> is restricted.
>>>
>>> ./perf test -v "perf all metrics test"
>>> Metric 'Memory_RD_BW_Chip' not printed in:
>>> 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 metrics test: FAILED!
>
> In my system, it fails like below:
>
> $ ./perf test -v 101
> 101: perf all metrics test :
> --- start ---
> test child forked, pid 398458
> Testing branch_misprediction_ratio
> Testing all_remote_links_outbound
> Metric 'all_remote_links_outbound' not printed in:
> Error:
> Invalid event (remote_outbound_data_controller_3:u) in per-thread
> mode, enable system wide with '-a'.
> Testing nps1_die_to_dram
Hi Namhyung,
Thanks for checking. Is the fail behaviour observed after applying this fix patch ?
I will check it in my setup
Athira
> ...
>
> Thanks,
> Namhyung
>
>>
>>
>> Hi,
>>
>> Looking for review comments on this patch.
>>
>> Thanks
>>>
>>> The perf all metrics test picks the input events from
>>> "perf list --raw-dump metrics" and runs "perf stat -M "$m""
>>> for each of the metrics in the list. It fails here for some
>>> of the metrics which needs access, since it collects system
>>> wide resource details/statistics. Fix the testcase to skip
>>> those metric events.
>>>
>>> Signed-off-by: Athira Rajeev <atrajeev at linux.vnet.ibm.com>
>>> ---
>>> tools/perf/tests/shell/stat_all_metrics.sh | 4 +++-
>>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/tools/perf/tests/shell/stat_all_metrics.sh b/tools/perf/tests/shell/stat_all_metrics.sh
>>> index 54774525e18a..14b96484a359 100755
>>> --- a/tools/perf/tests/shell/stat_all_metrics.sh
>>> +++ b/tools/perf/tests/shell/stat_all_metrics.sh
>>> @@ -6,7 +6,9 @@ err=0
>>> for m in $(perf list --raw-dump metrics); do
>>> echo "Testing $m"
>>> result=$(perf stat -M "$m" true 2>&1)
>>> - if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "<not supported>" ]]
>>> + # Skip if there is no access to perf_events monitoring
>>> + # and observability operations
>>> + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "<not supported>" ]] || [[ "$result" =~ "Access to performance monitoring and observability operations is limited" ]]
>>> then
>>> continue
>>> fi
>>> --
>>> 2.31.1
More information about the Linuxppc-dev
mailing list