public inbox for linux-perf-users@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized
@ 2024-12-12 17:33 Ian Rogers
  2024-12-13  1:39 ` Namhyung Kim
  2024-12-13  8:55 ` James Clark
  0 siblings, 2 replies; 5+ messages in thread
From: Ian Rogers @ 2024-12-12 17:33 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Ian Rogers, Adrian Hunter, Kan Liang, James Clark,
	linux-perf-users, linux-kernel

The cycles event will fallback to task-clock in the hybrid test when
running virtualized. Change the test to not fail for this.

Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/shell/stat.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
index 5a2ca2bcf94d..da42427bb077 100755
--- a/tools/perf/tests/shell/stat.sh
+++ b/tools/perf/tests/shell/stat.sh
@@ -163,7 +163,11 @@ test_hybrid() {
   # Run default Perf stat
   cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/|  cycles  " | wc -l)
 
-  if [ "$pmus" -ne "$cycles_events" ]
+  # The expectation is that default output will have a cycles events on each
+  # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
+  # can fall back to task-clock and so the end count may be 0. Fail if neither
+  # condition holds.
+  if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
   then
     echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
     err=1
-- 
2.47.1.613.gc27f4b7a9f-goog


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized
  2024-12-12 17:33 [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized Ian Rogers
@ 2024-12-13  1:39 ` Namhyung Kim
  2024-12-13  3:31   ` Ian Rogers
  2024-12-13  8:55 ` James Clark
  1 sibling, 1 reply; 5+ messages in thread
From: Namhyung Kim @ 2024-12-13  1:39 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Kan Liang, James Clark, linux-perf-users, linux-kernel

On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> The cycles event will fallback to task-clock in the hybrid test when
> running virtualized. Change the test to not fail for this.
> 
> Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")

I cannot find this commit.

> Signed-off-by: Ian Rogers <irogers@google.com>

Other than that,

Acked-by: Namhyung Kim <namhyung@kernel.org>

Thanks,
Namhyung

> ---
>  tools/perf/tests/shell/stat.sh | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index 5a2ca2bcf94d..da42427bb077 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -163,7 +163,11 @@ test_hybrid() {
>    # Run default Perf stat
>    cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/|  cycles  " | wc -l)
>  
> -  if [ "$pmus" -ne "$cycles_events" ]
> +  # The expectation is that default output will have a cycles events on each
> +  # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> +  # can fall back to task-clock and so the end count may be 0. Fail if neither
> +  # condition holds.
> +  if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
>    then
>      echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
>      err=1
> -- 
> 2.47.1.613.gc27f4b7a9f-goog
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized
  2024-12-13  1:39 ` Namhyung Kim
@ 2024-12-13  3:31   ` Ian Rogers
  2025-01-13 15:37     ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 5+ messages in thread
From: Ian Rogers @ 2024-12-13  3:31 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Mark Rutland, Alexander Shishkin, Jiri Olsa, Adrian Hunter,
	Kan Liang, James Clark, linux-perf-users, linux-kernel

On Thu, Dec 12, 2024 at 5:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> > The cycles event will fallback to task-clock in the hybrid test when
> > running virtualized. Change the test to not fail for this.
> >
> > Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
>
> I cannot find this commit.

Sorry, should have been:
Fixes: 65d11821910b ("perf test: Add a test for default perf stat command")

Thanks,
Ian

> > Signed-off-by: Ian Rogers <irogers@google.com>
>
> Other than that,
>
> Acked-by: Namhyung Kim <namhyung@kernel.org>
>
> Thanks,
> Namhyung
>
> > ---
> >  tools/perf/tests/shell/stat.sh | 6 +++++-
> >  1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> > index 5a2ca2bcf94d..da42427bb077 100755
> > --- a/tools/perf/tests/shell/stat.sh
> > +++ b/tools/perf/tests/shell/stat.sh
> > @@ -163,7 +163,11 @@ test_hybrid() {
> >    # Run default Perf stat
> >    cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/|  cycles  " | wc -l)
> >
> > -  if [ "$pmus" -ne "$cycles_events" ]
> > +  # The expectation is that default output will have a cycles events on each
> > +  # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> > +  # can fall back to task-clock and so the end count may be 0. Fail if neither
> > +  # condition holds.
> > +  if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> >    then
> >      echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> >      err=1
> > --
> > 2.47.1.613.gc27f4b7a9f-goog
> >

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized
  2024-12-12 17:33 [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized Ian Rogers
  2024-12-13  1:39 ` Namhyung Kim
@ 2024-12-13  8:55 ` James Clark
  1 sibling, 0 replies; 5+ messages in thread
From: James Clark @ 2024-12-13  8:55 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Mark Rutland, Alexander Shishkin, Jiri Olsa,
	Adrian Hunter, Kan Liang, linux-perf-users, linux-kernel



On 12/12/2024 5:33 pm, Ian Rogers wrote:
> The cycles event will fallback to task-clock in the hybrid test when
> running virtualized. Change the test to not fail for this.
> 
> Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>   tools/perf/tests/shell/stat.sh | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> index 5a2ca2bcf94d..da42427bb077 100755
> --- a/tools/perf/tests/shell/stat.sh
> +++ b/tools/perf/tests/shell/stat.sh
> @@ -163,7 +163,11 @@ test_hybrid() {
>     # Run default Perf stat
>     cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/|  cycles  " | wc -l)
>   
> -  if [ "$pmus" -ne "$cycles_events" ]
> +  # The expectation is that default output will have a cycles events on each
> +  # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> +  # can fall back to task-clock and so the end count may be 0. Fail if neither
> +  # condition holds.
> +  if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
>     then
>       echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
>       err=1

Reviewed-by: James Clark <james.clark@linaro.org>


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized
  2024-12-13  3:31   ` Ian Rogers
@ 2025-01-13 15:37     ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 5+ messages in thread
From: Arnaldo Carvalho de Melo @ 2025-01-13 15:37 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Namhyung Kim, Peter Zijlstra, Ingo Molnar, Mark Rutland,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, Kan Liang,
	James Clark, linux-perf-users, linux-kernel

On Thu, Dec 12, 2024 at 07:31:04PM -0800, Ian Rogers wrote:
> On Thu, Dec 12, 2024 at 5:39 PM Namhyung Kim <namhyung@kernel.org> wrote:
> > On Thu, Dec 12, 2024 at 09:33:54AM -0800, Ian Rogers wrote:
> > > The cycles event will fallback to task-clock in the hybrid test when
> > > running virtualized. Change the test to not fail for this.

> > > Fixes: a6b8bb2addd0 ("perf test: Add a test for default perf stat command")

> > I cannot find this commit.
 
> Sorry, should have been:
> Fixes: 65d11821910b ("perf test: Add a test for default perf stat command")

Thanks, applied to perf-tools-next, there was a minimal fuzz but I fixed
it up:

⬢ [acme@toolbox perf-tools-next]$ patch -p1 < ./v2_20241212_irogers_perf_test_stat_avoid_hybrid_assumption_when_virtualized.mbx
patching file tools/perf/tests/shell/stat.sh
Hunk #1 succeeded at 187 with fuzz 2 (offset 24 lines).

- Arnaldo
 
> Thanks,
> Ian
> 
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> >
> > Other than that,
> >
> > Acked-by: Namhyung Kim <namhyung@kernel.org>
> >
> > Thanks,
> > Namhyung
> >
> > > ---
> > >  tools/perf/tests/shell/stat.sh | 6 +++++-
> > >  1 file changed, 5 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/tools/perf/tests/shell/stat.sh b/tools/perf/tests/shell/stat.sh
> > > index 5a2ca2bcf94d..da42427bb077 100755
> > > --- a/tools/perf/tests/shell/stat.sh
> > > +++ b/tools/perf/tests/shell/stat.sh
> > > @@ -163,7 +163,11 @@ test_hybrid() {
> > >    # Run default Perf stat
> > >    cycles_events=$(perf stat -- true 2>&1 | grep -E "/cycles/|  cycles  " | wc -l)
> > >
> > > -  if [ "$pmus" -ne "$cycles_events" ]
> > > +  # The expectation is that default output will have a cycles events on each
> > > +  # hybrid PMU. In situations with no cycles PMU events, like virtualized, this
> > > +  # can fall back to task-clock and so the end count may be 0. Fail if neither
> > > +  # condition holds.
> > > +  if [ "$pmus" -ne "$cycles_events" ] && [ "0" -ne "$cycles_events" ]
> > >    then
> > >      echo "hybrid test [Found $pmus PMUs but $cycles_events cycles events. Failed]"
> > >      err=1
> > > --
> > > 2.47.1.613.gc27f4b7a9f-goog
> > >

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-01-13 15:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-12 17:33 [PATCH v2] perf test stat: Avoid hybrid assumption when virtualized Ian Rogers
2024-12-13  1:39 ` Namhyung Kim
2024-12-13  3:31   ` Ian Rogers
2025-01-13 15:37     ` Arnaldo Carvalho de Melo
2024-12-13  8:55 ` James Clark

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox