[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