[PATCH v2 0/2] perf: arm_pmuv3: Don't use PMCCNTR_EL0 on SMT cores
Yicong Yang
yangyicong at huawei.com
Wed Aug 20 01:45:32 PDT 2025
From: Yicong Yang <yangyicong at hisilicon.com>
This patchset fixed CPU_CYCLES counting on SMT system. CPU_CYCLES can use
PMCCNTR_EL0 which will count the hardware processor clock rather than the
PE clock (ARM DDI0487 L.b D13.1.3) on SMT cores which fails the users
expectation as CPU_CYCLES (0x0011) is defined to count on each PE cycles.
Fix this by avoid using PMCCNTR_EL0 on SMT cores when counting CPU_CYCLES.
Changes since v1:
- remove redundant comment and add tags on Patch 1/2
- detect the SMT implementation during PMU probe rather than runtime
Link: https://lore.kernel.org/linux-arm-kernel/20250812080830.20796-1-yangyicong@huawei.com/
Yicong Yang (2):
perf: arm_pmuv3: Factor out PMCCNTR_EL0 use conditions
perf: arm_pmuv3: Don't use PMCCNTR_EL0 on SMT cores
drivers/perf/arm_pmu.c | 3 +++
drivers/perf/arm_pmuv3.c | 39 +++++++++++++++++++++++++++++++++--
include/linux/arch_topology.h | 11 ++++++++++
include/linux/perf/arm_pmu.h | 1 +
4 files changed, 52 insertions(+), 2 deletions(-)
--
2.24.0
More information about the linux-arm-kernel
mailing list