arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability
authorJames Clark <james.clark@arm.com>
Mon, 24 Jul 2023 13:44:56 +0000 (14:44 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 26 Jul 2023 10:28:46 +0000 (12:28 +0200)
commit5c816728651ae425954542fed64d21d40cb75a9f
treeabf026133055db98257d4634bdccc34299da3b57
parent8bfc20baa9355d2ce6b031ff8bdb62c9456923f7
arm_pmu: Add PERF_PMU_CAP_EXTENDED_HW_TYPE capability

This capability gives us the ability to open PERF_TYPE_HARDWARE and
PERF_TYPE_HW_CACHE events on a specific PMU for free. All the
implementation is contained in the Perf core and tool code so no change
to the Arm PMU driver is needed.

The following basic use case now results in Perf opening the event on
all PMUs rather than picking only one in an unpredictable way:

  $ perf stat -e cycles -- taskset --cpu-list 0,1 stress -c 2

   Performance counter stats for 'taskset --cpu-list 0,1 stress -c 2':

         963279620      armv8_cortex_a57/cycles/                (99.19%)
         752745657      armv8_cortex_a53/cycles/                (94.80%)

Fixes: 55bcf6ef314a ("perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE")
Suggested-by: Ian Rogers <irogers@google.com>
Signed-off-by: James Clark <james.clark@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>
Acked-by: Ian Rogers <irogers@google.com>
Link: https://lore.kernel.org/r/20230724134500.970496-2-james.clark@arm.com
drivers/perf/arm_pmu.c