perf: arm_pmu: Fix build on arm if !CONFIG_GENERIC_ARCH_TOPOLOGY
PATCH 1/1 perf: arm_pmu: Fix build on arm if !CONFIG_GENERIC_ARCH_TOPOLOGY
The SMT implementation is retrieved by topology_core_has_smt() which depends on CONFIG_GENERIC_ARCH_TOPOLOGY. The config is optional on arm platforms so protect the usage with CONFIG_GENERIC_ARCH_TOPOLOGY.
--- drivers/perf/arm_pmu.c | 2 ++ 1 file changed, 2 insertions(+)
drivers/perf/arm_pmu.c +2 -0
@@ -925,11 +925,13 @@ int armpmu_register(struct arm_pmu *pmu)if (ret)return ret; +#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY /* * By this stage we know our supported CPUs on either DT/ACPI platforms, * detect the SMT implementation. */ pmu->has_smt =topology_core_has_smt (cpumask_first (&pmu->supported_cpus)); +#endif if (!pmu->set_event_filter) pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ;
Signature · 1 line
2.50.1 (Apple Git-155)
Will Deacon
maintainerQuoted 32 lines · Yicong Yang
The SMT implementation is retrieved by
topology_core_has_smt()which depends onCONFIG_GENERIC_ARCH_TOPOLOGY. The config is optional on arm platforms so protect the usage withCONFIG_GENERIC_ARCH_TOPOLOGY.Fixes c3d78c34ad00 ("perf: arm_pmuv3: Don't use PMCCNTR_EL0 on SMT cores")Reported-by kernel test robot <[email protected]>Signed-off-by Yicong Yang <[email protected]>--- drivers/perf/arm_pmu.c | 2 ++ 1 file changed, 2 insertions(+)drivers/perf/arm_pmu.c +2
-0@@ -925,11 +925,13 @@ int armpmu_register(struct arm_pmu *pmu)if (ret)return ret; +#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY /* * By this stage we know our supported CPUs on either DT/ACPI platforms, * detect the SMT implementation. */ pmu->has_smt =topology_core_has_smt (cpumask_first (&pmu->supported_cpus)); +#endif if (!pmu->set_event_filter) pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ;Signature · 1 line
2.50.1 (Apple Git-155)
Wouldn't we be better off adding something like:
#else
static inline bool topology_core_has_smt(int cpu) { return false; } #endif /* CONFIG_GENERIC_ARCH_TOPOLOGY */
to the bottom of include/linux/arch_topology.h?
Will
Quoted 35 lines · Will Deacon
Quoted 32 lines · Yicong Yang
The SMT implementation is retrieved by
topology_core_has_smt()which depends onCONFIG_GENERIC_ARCH_TOPOLOGY. The config is optional on arm platforms so protect the usage withCONFIG_GENERIC_ARCH_TOPOLOGY.Fixes c3d78c34ad00 ("perf: arm_pmuv3: Don't use PMCCNTR_EL0 on SMT cores")Reported-by kernel test robot <[email protected]>Signed-off-by Yicong Yang <[email protected]>--- drivers/perf/arm_pmu.c | 2 ++ 1 file changed, 2 insertions(+)drivers/perf/arm_pmu.c +2
-0@@ -925,11 +925,13 @@ int armpmu_register(struct arm_pmu *pmu)if (ret)return ret; +#ifdef CONFIG_GENERIC_ARCH_TOPOLOGY /* * By this stage we know our supported CPUs on either DT/ACPI platforms, * detect the SMT implementation. */ pmu->has_smt =topology_core_has_smt (cpumask_first (&pmu->supported_cpus)); +#endif if (!pmu->set_event_filter) pmu->pmu.capabilities |=PERF_PMU_CAP_NO_EXCLUDE ;Signature · 1 line
2.50.1 (Apple Git-155)Wouldn't we be better off adding something like:
Quoted 5 lines
#else
static inline booltopology_core_has_smt(int cpu){ return false; } #endif /*CONFIG_GENERIC_ARCH_TOPOLOGY*/to the bottom of
include/linux/arch_topology.h?
I was thinking so but found there's no !CONFIG_GENERIC_ARCH_TOPOLOGY
stubs for other functions. So I checked how this is handled in other places and follow in the same way [1]
but a stub will be neater here. will respin a version using the stub.
thanks.