public inbox for linux-perf-users@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
@ 2026-04-02 22:04 Ian Rogers
  2026-04-06 18:16 ` Namhyung Kim
  0 siblings, 1 reply; 4+ messages in thread
From: Ian Rogers @ 2026-04-02 22:04 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Namhyung Kim, Alexander Shishkin, Jiri Olsa, Ian Rogers,
	Adrian Hunter, James Clark, linux-perf-users, linux-kernel

Seen on ARM, the stalled-cycles-backend event can be given as the
event for both backend_cycles_idle and stalled_cycles_per_instruction
metrics. Make the metric match sufficiently generic to allow this.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/tests/shell/stat+std_output.sh | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/tools/perf/tests/shell/stat+std_output.sh b/tools/perf/tests/shell/stat+std_output.sh
index 9c4b92ecf448..5a6bda436dd4 100755
--- a/tools/perf/tests/shell/stat+std_output.sh
+++ b/tools/perf/tests/shell/stat+std_output.sh
@@ -11,9 +11,12 @@ set -e
 
 stat_output=$(mktemp /tmp/__perf_test.stat_output.std.XXXXX)
 
+# For event_name[i] expect to see event_metric[i]. 'stalled-cycles-backend' may
+# match both 'backend_cycles_idle' and 'stalled_cycles_per_instruction', hence
+# matching "_cycles_".
 event_name=(cpu-clock task-clock context-switches cpu-migrations page-faults stalled-cycles-frontend stalled-cycles-backend cycles instructions branches branch-misses)
-event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "backend_cycles_idle" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
-skip_metric=("tma_" "TopdownL1")
+event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "_cycles_" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
+skip_metric=("tma_" "TopdownL1" "percent of slots")
 
 cleanup() {
   rm -f "${stat_output}"
-- 
2.53.0.1213.gd9a14994de-goog


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

* Re: [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
  2026-04-02 22:04 [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend Ian Rogers
@ 2026-04-06 18:16 ` Namhyung Kim
  2026-04-06 18:25   ` Ian Rogers
  0 siblings, 1 reply; 4+ messages in thread
From: Namhyung Kim @ 2026-04-06 18:16 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, James Clark,
	linux-perf-users, linux-kernel

On Thu, Apr 02, 2026 at 03:04:06PM -0700, Ian Rogers wrote:
> Seen on ARM, the stalled-cycles-backend event can be given as the
> event for both backend_cycles_idle and stalled_cycles_per_instruction
> metrics. Make the metric match sufficiently generic to allow this.
> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/tests/shell/stat+std_output.sh | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/tests/shell/stat+std_output.sh b/tools/perf/tests/shell/stat+std_output.sh
> index 9c4b92ecf448..5a6bda436dd4 100755
> --- a/tools/perf/tests/shell/stat+std_output.sh
> +++ b/tools/perf/tests/shell/stat+std_output.sh
> @@ -11,9 +11,12 @@ set -e
>  
>  stat_output=$(mktemp /tmp/__perf_test.stat_output.std.XXXXX)
>  
> +# For event_name[i] expect to see event_metric[i]. 'stalled-cycles-backend' may
> +# match both 'backend_cycles_idle' and 'stalled_cycles_per_instruction', hence
> +# matching "_cycles_".
>  event_name=(cpu-clock task-clock context-switches cpu-migrations page-faults stalled-cycles-frontend stalled-cycles-backend cycles instructions branches branch-misses)
> -event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "backend_cycles_idle" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
> -skip_metric=("tma_" "TopdownL1")
> +event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "_cycles_" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")

Is this used for partial string match?

Then I guess "frontend_cycles_idle" can be covered by "_cycles_" too?
Also as we have "/sec", can "cs/sec" and "migrations/sec" be removed?


> +skip_metric=("tma_" "TopdownL1" "percent of slots")

Why is "percent of slots" added as well?

Thanks,
Namhyung

>  
>  cleanup() {
>    rm -f "${stat_output}"
> -- 
> 2.53.0.1213.gd9a14994de-goog
> 

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

* Re: [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
  2026-04-06 18:16 ` Namhyung Kim
@ 2026-04-06 18:25   ` Ian Rogers
  2026-04-07  5:24     ` Namhyung Kim
  0 siblings, 1 reply; 4+ messages in thread
From: Ian Rogers @ 2026-04-06 18:25 UTC (permalink / raw)
  To: Namhyung Kim
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, James Clark,
	linux-perf-users, linux-kernel

On Mon, Apr 6, 2026 at 11:16 AM Namhyung Kim <namhyung@kernel.org> wrote:
>
> On Thu, Apr 02, 2026 at 03:04:06PM -0700, Ian Rogers wrote:
> > Seen on ARM, the stalled-cycles-backend event can be given as the
> > event for both backend_cycles_idle and stalled_cycles_per_instruction
> > metrics. Make the metric match sufficiently generic to allow this.
> >
> > Signed-off-by: Ian Rogers <irogers@google.com>
> > ---
> >  tools/perf/tests/shell/stat+std_output.sh | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/perf/tests/shell/stat+std_output.sh b/tools/perf/tests/shell/stat+std_output.sh
> > index 9c4b92ecf448..5a6bda436dd4 100755
> > --- a/tools/perf/tests/shell/stat+std_output.sh
> > +++ b/tools/perf/tests/shell/stat+std_output.sh
> > @@ -11,9 +11,12 @@ set -e
> >
> >  stat_output=$(mktemp /tmp/__perf_test.stat_output.std.XXXXX)
> >
> > +# For event_name[i] expect to see event_metric[i]. 'stalled-cycles-backend' may
> > +# match both 'backend_cycles_idle' and 'stalled_cycles_per_instruction', hence
> > +# matching "_cycles_".
> >  event_name=(cpu-clock task-clock context-switches cpu-migrations page-faults stalled-cycles-frontend stalled-cycles-backend cycles instructions branches branch-misses)
> > -event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "backend_cycles_idle" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
> > -skip_metric=("tma_" "TopdownL1")
> > +event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "_cycles_" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
>
> Is this used for partial string match?
>
> Then I guess "frontend_cycles_idle" can be covered by "_cycles_" too?
> Also as we have "/sec", can "cs/sec" and "migrations/sec" be removed?

When we see the event at index 'i' in the event_name array, we check
the corresponding metric at index 'i' in the event_metric array. So
"cs/sec" matches the event "context-switches" while "/sec" matches
"branches". We could weaken the "context-switches" event to match just
"/sec" as a metric, but it seems better to leave it as "cs/sec".

> > +skip_metric=("tma_" "TopdownL1" "percent of slots")
>
> Why is "percent of slots" added as well?

Seen on ARM, the metric names lack an easily catchable prefix like
tma_. Its part of the fixing this test for ARM, but could be called
out more in the commit message.

Thanks,
Ian

> Thanks,
> Namhyung
>
> >
> >  cleanup() {
> >    rm -f "${stat_output}"
> > --
> > 2.53.0.1213.gd9a14994de-goog
> >

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

* Re: [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
  2026-04-06 18:25   ` Ian Rogers
@ 2026-04-07  5:24     ` Namhyung Kim
  0 siblings, 0 replies; 4+ messages in thread
From: Namhyung Kim @ 2026-04-07  5:24 UTC (permalink / raw)
  To: Ian Rogers
  Cc: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo,
	Alexander Shishkin, Jiri Olsa, Adrian Hunter, James Clark,
	linux-perf-users, linux-kernel

On Mon, Apr 06, 2026 at 11:25:49AM -0700, Ian Rogers wrote:
> On Mon, Apr 6, 2026 at 11:16 AM Namhyung Kim <namhyung@kernel.org> wrote:
> >
> > On Thu, Apr 02, 2026 at 03:04:06PM -0700, Ian Rogers wrote:
> > > Seen on ARM, the stalled-cycles-backend event can be given as the
> > > event for both backend_cycles_idle and stalled_cycles_per_instruction
> > > metrics. Make the metric match sufficiently generic to allow this.
> > >
> > > Signed-off-by: Ian Rogers <irogers@google.com>
> > > ---
> > >  tools/perf/tests/shell/stat+std_output.sh | 7 +++++--
> > >  1 file changed, 5 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/tools/perf/tests/shell/stat+std_output.sh b/tools/perf/tests/shell/stat+std_output.sh
> > > index 9c4b92ecf448..5a6bda436dd4 100755
> > > --- a/tools/perf/tests/shell/stat+std_output.sh
> > > +++ b/tools/perf/tests/shell/stat+std_output.sh
> > > @@ -11,9 +11,12 @@ set -e
> > >
> > >  stat_output=$(mktemp /tmp/__perf_test.stat_output.std.XXXXX)
> > >
> > > +# For event_name[i] expect to see event_metric[i]. 'stalled-cycles-backend' may
> > > +# match both 'backend_cycles_idle' and 'stalled_cycles_per_instruction', hence
> > > +# matching "_cycles_".
> > >  event_name=(cpu-clock task-clock context-switches cpu-migrations page-faults stalled-cycles-frontend stalled-cycles-backend cycles instructions branches branch-misses)
> > > -event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "backend_cycles_idle" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
> > > -skip_metric=("tma_" "TopdownL1")
> > > +event_metric=("CPUs_utilized" "CPUs_utilized" "cs/sec" "migrations/sec" "faults/sec" "frontend_cycles_idle" "_cycles_" "GHz" "insn_per_cycle" "/sec" "branch_miss_rate")
> >
> > Is this used for partial string match?
> >
> > Then I guess "frontend_cycles_idle" can be covered by "_cycles_" too?
> > Also as we have "/sec", can "cs/sec" and "migrations/sec" be removed?
> 
> When we see the event at index 'i' in the event_name array, we check
> the corresponding metric at index 'i' in the event_metric array. So
> "cs/sec" matches the event "context-switches" while "/sec" matches
> "branches". We could weaken the "context-switches" event to match just
> "/sec" as a metric, but it seems better to leave it as "cs/sec".

I see.  So it's index-based and the metric names are different on x86
and ARM.

> 
> > > +skip_metric=("tma_" "TopdownL1" "percent of slots")
> >
> > Why is "percent of slots" added as well?
> 
> Seen on ARM, the metric names lack an easily catchable prefix like
> tma_. Its part of the fixing this test for ARM, but could be called
> out more in the commit message.

Right, it'd be great if you could explain the problem clearly with an
example.  Feel free to consider me knows nothing..

Thanks,
Namhyung


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

end of thread, other threads:[~2026-04-07  5:24 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-02 22:04 [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend Ian Rogers
2026-04-06 18:16 ` Namhyung Kim
2026-04-06 18:25   ` Ian Rogers
2026-04-07  5:24     ` Namhyung Kim

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