]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
perf stat: Fix default metricgroup display on hybrid
authorIan Rogers <irogers@google.com>
Tue, 11 Nov 2025 21:21:56 +0000 (13:21 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 12 Nov 2025 00:48:35 +0000 (16:48 -0800)
The logic to skip output of a default metric line was firing on
Alderlake and not displaying 'TopdownL1 (cpu_atom)'. Remove the
need_full_name check as it is equivalent to the different PMU test in
the cases we care about, merge the 'if's and flip the evsel of the PMU
test. The 'if' is now basically saying, if the output matches the last
printed output then skip the output.

Before:
```
             TopdownL1 (cpu_core)                 #     11.3 %  tma_bad_speculation
                                                  #     24.3 %  tma_frontend_bound
             TopdownL1 (cpu_core)                 #     33.9 %  tma_backend_bound
                                                  #     30.6 %  tma_retiring
                                                  #     42.2 %  tma_backend_bound
                                                  #     25.0 %  tma_frontend_bound       (49.81%)
                                                  #     12.8 %  tma_bad_speculation
                                                  #     20.0 %  tma_retiring             (59.46%)
```
After:
```
             TopdownL1 (cpu_core)                 #      8.3 %  tma_bad_speculation
                                                  #     43.7 %  tma_frontend_bound
                                                  #     30.7 %  tma_backend_bound
                                                  #     17.2 %  tma_retiring
             TopdownL1 (cpu_atom)                 #     31.9 %  tma_backend_bound
                                                  #     37.6 %  tma_frontend_bound       (49.66%)
                                                  #     18.0 %  tma_bad_speculation
                                                  #     12.6 %  tma_retiring             (59.58%)
```

Signed-off-by: Ian Rogers <irogers@google.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/stat-shadow.c

index afbc49e8cb314324f1f98dbd18a7856c000dc0c0..c1547128c39623c25efaf743f4b6ef9bffb9311b 100644 (file)
@@ -256,11 +256,9 @@ static void perf_stat__print_metricgroup_header(struct perf_stat_config *config,
         * event. Only align with other metics from
         * different metric events.
         */
-       if (last_name && !strcmp(last_name, name)) {
-               if (!need_full_name || last_pmu != evsel->pmu) {
-                       out->print_metricgroup_header(config, ctxp, NULL);
-                       return;
-               }
+       if (last_name && !strcmp(last_name, name) && last_pmu == evsel->pmu) {
+               out->print_metricgroup_header(config, ctxp, NULL);
+               return;
        }
 
        if (need_full_name && evsel->pmu)