Re: [PATCH v1] perf test: Stat std output match 2 metrics for stalled-cycles-backend
From: Ian Rogers
Date: Mon Apr 06 2026 - 14:29:18 EST
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".
> > +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
> >