]> www.infradead.org Git - users/jedix/linux-maple.git/commit
perf stat: Fix find_stat for mixed legacy/non-legacy events
authorIan Rogers <irogers@google.com>
Thu, 9 Jan 2025 22:21:07 +0000 (14:21 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Wed, 29 Jan 2025 22:06:25 +0000 (14:06 -0800)
commit8ce0d2da14d3fb62844dd0e95982c194326b1a5f
treeca9c745bb3908b20025112d6b5082480b186024d
parent6ab89b7fc2b5ef7eaa6054143ba09f6e0fefb657
perf stat: Fix find_stat for mixed legacy/non-legacy events

Legacy events typically don't have a PMU when added leading to
mismatched legacy/non-legacy cases in find_stat. Use evsel__find_pmu
to make sure the evsel PMU is looked up. Update the evsel__find_pmu
code to look for the PMU using the extended config type or, for legacy
hardware/hw_cache events on non-hybrid systems, just use the core PMU.

Before:
```
$ perf stat -e cycles,cpu/instructions/ -a sleep 1
 Performance counter stats for 'system wide':

       215,309,764      cycles
        44,326,491      cpu/instructions/

       1.002555314 seconds time elapsed
```
After:
```
$ perf stat -e cycles,cpu/instructions/ -a sleep 1

 Performance counter stats for 'system wide':

       990,676,332      cycles
     1,235,762,487      cpu/instructions/                #    1.25  insn per cycle

       1.002667198 seconds time elapsed
```

Fixes: 3612ca8e2935 ("perf stat: Fix the hard-coded metrics calculation on the hybrid")
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: James Clark <james.clark@linaro.org>
Tested-by: Leo Yan <leo.yan@arm.com>
Tested-by: Atish Patra <atishp@rivosinc.com>
Link: https://lore.kernel.org/r/20250109222109.567031-3-irogers@google.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/pmus.c
tools/perf/util/stat-shadow.c