[PATCH v1] perf test: Fix hybrid testing of event fallback test

Ian Rogers posted 1 patch 2 months, 1 week ago
.../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
[PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Ian Rogers 2 months, 1 week ago
The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
does not. This causes an event parsing error which erroneously makes
the test look like it is failing. Avoid naming the PMU to avoid
this. Rather than cleaning up perf.data in the directory the test is
run, explicitly send the 'perf record' output to /dev/null and avoid
any cleanup scripts.

Fixes: fc9c17b22352 ("perf test: Add a perf event fallback test")
Signed-off-by: Ian Rogers <irogers@google.com>
---
 .../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)

diff --git a/tools/perf/tests/shell/test_event_open_fallback.sh b/tools/perf/tests/shell/test_event_open_fallback.sh
index 9c411153c01b..9420a7557c13 100755
--- a/tools/perf/tests/shell/test_event_open_fallback.sh
+++ b/tools/perf/tests/shell/test_event_open_fallback.sh
@@ -6,24 +6,9 @@ skip_cnt=0
 ok_cnt=0
 err_cnt=0
 
-cleanup()
-{
-	rm -f perf.data
-	rm -f perf.data.old
-	trap - EXIT TERM INT
-}
-
-trap_cleanup()
-{
-	cleanup
-	exit 1
-}
-
-trap trap_cleanup EXIT TERM INT
-
 perf_record()
 {
-	perf record "$@" -- true 1>/dev/null 2>&1
+	perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
 }
 
 test_decrease_precise_ip()
@@ -49,7 +34,7 @@ test_decrease_precise_ip_complicated()
 
 	perf list pmu | grep -q 'mem-loads-aux' || return 2
 
-	if ! perf_record -e '{cpu/mem-loads-aux/S,cpu/mem-loads/PS}'; then
+	if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then
 		return 1
 	fi
 	return 0
-- 
2.52.0.158.g65b55ccf14-goog
Re: [PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Namhyung Kim 2 months ago
On Mon, 01 Dec 2025 15:11:36 -0800, Ian Rogers wrote:
> The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
> does not. This causes an event parsing error which erroneously makes
> the test look like it is failing. Avoid naming the PMU to avoid
> this. Rather than cleaning up perf.data in the directory the test is
> run, explicitly send the 'perf record' output to /dev/null and avoid
> any cleanup scripts.
> 
> [...]
Applied to perf-tools-next, thanks!

Best regards,
Namhyung
Re: [PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Namhyung Kim 2 months ago
On Mon, Dec 01, 2025 at 03:11:36PM -0800, Ian Rogers wrote:
> The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
> does not. This causes an event parsing error which erroneously makes
> the test look like it is failing. Avoid naming the PMU to avoid
> this. Rather than cleaning up perf.data in the directory the test is
> run, explicitly send the 'perf record' output to /dev/null and avoid
> any cleanup scripts.
> 
> Fixes: fc9c17b22352 ("perf test: Add a perf event fallback test")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  .../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
>  1 file changed, 2 insertions(+), 17 deletions(-)
> 
> diff --git a/tools/perf/tests/shell/test_event_open_fallback.sh b/tools/perf/tests/shell/test_event_open_fallback.sh
> index 9c411153c01b..9420a7557c13 100755
> --- a/tools/perf/tests/shell/test_event_open_fallback.sh
> +++ b/tools/perf/tests/shell/test_event_open_fallback.sh
> @@ -6,24 +6,9 @@ skip_cnt=0
>  ok_cnt=0
>  err_cnt=0
>  
> -cleanup()
> -{
> -	rm -f perf.data
> -	rm -f perf.data.old
> -	trap - EXIT TERM INT
> -}
> -
> -trap_cleanup()
> -{
> -	cleanup
> -	exit 1
> -}
> -
> -trap trap_cleanup EXIT TERM INT
> -
>  perf_record()
>  {
> -	perf record "$@" -- true 1>/dev/null 2>&1
> +	perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
>  }
>  
>  test_decrease_precise_ip()
> @@ -49,7 +34,7 @@ test_decrease_precise_ip_complicated()
>  
>  	perf list pmu | grep -q 'mem-loads-aux' || return 2
>  
> -	if ! perf_record -e '{cpu/mem-loads-aux/S,cpu/mem-loads/PS}'; then
> +	if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then

I think we need to either keep the trap handler or convert all perf
record commands including this to use -o /dev/null.

Thanks,
Namhyung


>  		return 1
>  	fi
>  	return 0
> -- 
> 2.52.0.158.g65b55ccf14-goog
>
Re: [PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Ian Rogers 2 months ago
On Tue, Dec 2, 2025 at 1:41 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Mon, Dec 01, 2025 at 03:11:36PM -0800, Ian Rogers wrote:
> > The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
> > does not. This causes an event parsing error which erroneously makes
> > the test look like it is failing. Avoid naming the PMU to avoid
> > this. Rather than cleaning up perf.data in the directory the test is
> > run, explicitly send the 'perf record' output to /dev/null and avoid
> > any cleanup scripts.
> >
> > Fixes: fc9c17b22352 ("perf test: Add a perf event fallback test")
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  .../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
> >  1 file changed, 2 insertions(+), 17 deletions(-)
> >
> > diff --git a/tools/perf/tests/shell/test_event_open_fallback.sh b/tools/perf/tests/shell/test_event_open_fallback.sh
> > index 9c411153c01b..9420a7557c13 100755
> > --- a/tools/perf/tests/shell/test_event_open_fallback.sh
> > +++ b/tools/perf/tests/shell/test_event_open_fallback.sh
> > @@ -6,24 +6,9 @@ skip_cnt=0
> >  ok_cnt=0
> >  err_cnt=0
> >
> > -cleanup()
> > -{
> > -     rm -f perf.data
> > -     rm -f perf.data.old
> > -     trap - EXIT TERM INT
> > -}
> > -
> > -trap_cleanup()
> > -{
> > -     cleanup
> > -     exit 1
> > -}
> > -
> > -trap trap_cleanup EXIT TERM INT
> > -
> >  perf_record()
> >  {
> > -     perf record "$@" -- true 1>/dev/null 2>&1
> > +     perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
> >  }
> >
> >  test_decrease_precise_ip()
> > @@ -49,7 +34,7 @@ test_decrease_precise_ip_complicated()
> >
> >       perf list pmu | grep -q 'mem-loads-aux' || return 2
> >
> > -     if ! perf_record -e '{cpu/mem-loads-aux/S,cpu/mem-loads/PS}'; then
> > +     if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then
>
> I think we need to either keep the trap handler or convert all perf
> record commands including this to use -o /dev/null.

So all the perf record commands use "-o /dev/null" as perf record is
always run using the "perf_record" function (ie the one updated here)
:-)

Thanks,
Ian

> Thanks,
> Namhyung
>
>
> >               return 1
> >       fi
> >       return 0
> > --
> > 2.52.0.158.g65b55ccf14-goog
> >
Re: [PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Namhyung Kim 2 months ago
On Tue, Dec 02, 2025 at 03:05:12PM -0800, Ian Rogers wrote:
> On Tue, Dec 2, 2025 at 1:41 PM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Mon, Dec 01, 2025 at 03:11:36PM -0800, Ian Rogers wrote:
> > > The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
> > > does not. This causes an event parsing error which erroneously makes
> > > the test look like it is failing. Avoid naming the PMU to avoid
> > > this. Rather than cleaning up perf.data in the directory the test is
> > > run, explicitly send the 'perf record' output to /dev/null and avoid
> > > any cleanup scripts.
> > >
> > > Fixes: fc9c17b22352 ("perf test: Add a perf event fallback test")
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > >  .../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
> > >  1 file changed, 2 insertions(+), 17 deletions(-)
> > >
> > > diff --git a/tools/perf/tests/shell/test_event_open_fallback.sh b/tools/perf/tests/shell/test_event_open_fallback.sh
> > > index 9c411153c01b..9420a7557c13 100755
> > > --- a/tools/perf/tests/shell/test_event_open_fallback.sh
> > > +++ b/tools/perf/tests/shell/test_event_open_fallback.sh
> > > @@ -6,24 +6,9 @@ skip_cnt=0
> > >  ok_cnt=0
> > >  err_cnt=0
> > >
> > > -cleanup()
> > > -{
> > > -     rm -f perf.data
> > > -     rm -f perf.data.old
> > > -     trap - EXIT TERM INT
> > > -}
> > > -
> > > -trap_cleanup()
> > > -{
> > > -     cleanup
> > > -     exit 1
> > > -}
> > > -
> > > -trap trap_cleanup EXIT TERM INT
> > > -
> > >  perf_record()
> > >  {
> > > -     perf record "$@" -- true 1>/dev/null 2>&1
> > > +     perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
> > >  }
> > >
> > >  test_decrease_precise_ip()
> > > @@ -49,7 +34,7 @@ test_decrease_precise_ip_complicated()
> > >
> > >       perf list pmu | grep -q 'mem-loads-aux' || return 2
> > >
> > > -     if ! perf_record -e '{cpu/mem-loads-aux/S,cpu/mem-loads/PS}'; then
> > > +     if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then
> >
> > I think we need to either keep the trap handler or convert all perf
> > record commands including this to use -o /dev/null.
> 
> So all the perf record commands use "-o /dev/null" as perf record is
> always run using the "perf_record" function (ie the one updated here)
> :-)

Oh.. I missed that.  LGTM!

Thanks,
Namhyung

> >
> >
> > >               return 1
> > >       fi
> > >       return 0
> > > --
> > > 2.52.0.158.g65b55ccf14-goog
> > >
Re: [PATCH v1] perf test: Fix hybrid testing of event fallback test
Posted by Mi, Dapeng 2 months, 1 week ago
On 12/2/2025 7:11 AM, Ian Rogers wrote:
> The mem-loads-aux event exists on hybrid systems but the "cpu" PMU
> does not. This causes an event parsing error which erroneously makes
> the test look like it is failing. Avoid naming the PMU to avoid
> this. Rather than cleaning up perf.data in the directory the test is
> run, explicitly send the 'perf record' output to /dev/null and avoid
> any cleanup scripts.
>
> Fixes: fc9c17b22352 ("perf test: Add a perf event fallback test")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  .../tests/shell/test_event_open_fallback.sh   | 19 ++-----------------
>  1 file changed, 2 insertions(+), 17 deletions(-)
>
> diff --git a/tools/perf/tests/shell/test_event_open_fallback.sh b/tools/perf/tests/shell/test_event_open_fallback.sh
> index 9c411153c01b..9420a7557c13 100755
> --- a/tools/perf/tests/shell/test_event_open_fallback.sh
> +++ b/tools/perf/tests/shell/test_event_open_fallback.sh
> @@ -6,24 +6,9 @@ skip_cnt=0
>  ok_cnt=0
>  err_cnt=0
>  
> -cleanup()
> -{
> -	rm -f perf.data
> -	rm -f perf.data.old
> -	trap - EXIT TERM INT
> -}
> -
> -trap_cleanup()
> -{
> -	cleanup
> -	exit 1
> -}
> -
> -trap trap_cleanup EXIT TERM INT
> -
>  perf_record()
>  {
> -	perf record "$@" -- true 1>/dev/null 2>&1
> +	perf record -o /dev/null "$@" -- true 1>/dev/null 2>&1
>  }
>  
>  test_decrease_precise_ip()
> @@ -49,7 +34,7 @@ test_decrease_precise_ip_complicated()
>  
>  	perf list pmu | grep -q 'mem-loads-aux' || return 2
>  
> -	if ! perf_record -e '{cpu/mem-loads-aux/S,cpu/mem-loads/PS}'; then
> +	if ! perf_record -e '{mem-loads-aux:S,mem-loads:PS}'; then
>  		return 1
>  	fi
>  	return 0

Reviewed-by: Dapeng Mi <dapeng1.mi@linux.intel.com>