Re: [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
From: Namhyung Kim
Date: Tue Apr 07 2026 - 01:24:56 EST
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@xxxxxxxxxx> 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@xxxxxxxxxx>
> > > ---
> > > 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