Re: [PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
> On 05-Jul-2023, at 11:54 PM, Namhyung Kim wrote: > > On Mon, Jul 3, 2023 at 10:04 PM Athira Rajeev > wrote: >> >> >> >>> On 15-Jun-2023, at 1:08 PM, Athira Rajeev >>> 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 > ... > > Thanks, > Namhyung Hi Namhyung, I have posted a V2 for this : [PATCH V2 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted [PATCH V2 2/2] tools/perf/tests: perf all metricgroups test fails when perf_event access is restricted Please review and test the V2 version, and let me know your feedback. If any other metric fails even with this fix, that would be an event fail I believe and not a test issue. But looking for your test results with the V2 patchset Thanks Athira > >> >> >> 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 >>> --- >>> 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" =~ "" ]] >>> + # Skip if there is no access to perf_events monitoring >>> + # and observability operations >>> + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "" ]] >>> || [[ "$result" =~ "Access to performance monitoring and observability >>> operations is limited" ]] >>> then >>>continue >>> fi >>> -- >>> 2.31.1
Re: [PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
> On 05-Jul-2023, at 11:54 PM, Namhyung Kim wrote: > > On Mon, Jul 3, 2023 at 10:04 PM Athira Rajeev > wrote: >> >> >> >>> On 15-Jun-2023, at 1:08 PM, Athira Rajeev >>> 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 >>> --- >>> 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" =~ "" ]] >>> + # Skip if there is no access to perf_events monitoring >>> + # and observability operations >>> + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "" ]] >>> || [[ "$result" =~ "Access to performance monitoring and observability >>> operations is limited" ]] >>> then >>>continue >>> fi >>> -- >>> 2.31.1
Re: [PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
On Mon, Jul 3, 2023 at 10:04 PM Athira Rajeev wrote: > > > > > On 15-Jun-2023, at 1:08 PM, Athira Rajeev > > 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 ... 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 > > --- > > 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" =~ "" ]] > > + # Skip if there is no access to perf_events monitoring > > + # and observability operations > > + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "" ]] > > || [[ "$result" =~ "Access to performance monitoring and observability > > operations is limited" ]] > > then > > continue > > fi > > -- > > 2.31.1 > > >
Re: [PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
> On 15-Jun-2023, at 1:08 PM, Athira Rajeev 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! 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 > --- > 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" =~ "" ]] > + # Skip if there is no access to perf_events monitoring > + # and observability operations > + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "" ]] || > [[ "$result" =~ "Access to performance monitoring and observability > operations is limited" ]] > then > continue > fi > -- > 2.31.1 >
[PATCH 1/2] tools/perf/tests: perf all metrics test fails when perf_event access is restricted
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! 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 --- 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" =~ "" ]] + # Skip if there is no access to perf_events monitoring + # and observability operations + if [[ "$result" =~ ${m:0:50} ]] || [[ "$result" =~ "" ]] || [[ "$result" =~ "Access to performance monitoring and observability operations is limited" ]] then continue fi -- 2.31.1