Re: [PATCH] ARM: mach-virt: fix PMUv3 dependendency

Will Deacon
2023-03-28T15:24:27Z

Hi Arnd,

On Tue, Mar 28, 2023 at 04:43:44PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Selecting a ARM_PMUV3 from a platform option breaks the build
> when CONFIG_ARM_PMU is not already set:
>
> WARNING: unmet direct dependencies detected for ARM_PMUV3
> Depends on [n]: PERF_EVENTS [=y] && HW_PERF_EVENTS [=n] && (ARM [=y] && CPU_V7 [=y] || ARM64)
> Selected by [y]:
> - ARCH_VIRT [=y] && ARCH_MULTI_V7 [=y] && PERF_EVENTS [=y]
>
> drivers/perf/arm_pmuv3.c:48:9: error: 'PERF_MAP_ALL_UNSUPPORTED' undeclared here (not in a function)
> 48 | PERF_MAP_ALL_UNSUPPORTED,
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> drivers/perf/arm_pmuv3.c:63:9: error: 'PERF_CACHE_MAP_ALL_UNSUPPORTED' undeclared here (not in a function)
> 63 | PERF_CACHE_MAP_ALL_UNSUPPORTED,
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> drivers/perf/arm_pmuv3.c:65:10: error: implicit declaration of function 'C' [-Werror=implicit-function-declaration]
> 65 | [C(L1D)][C(OP_READ)][C(RESULT_ACCESS)] = ARMV8_PMUV3_PERFCTR_L1D_CACHE,
>
> Fixes: 3b16f6268e66 ("ARM: mach-virt: Select PMUv3 driver by default")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> arch/arm/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index e8ccacb3653b..700458c7cace 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -397,7 +397,7 @@ config ARCH_VIRT
> select ARM_GIC_V3
> select ARM_GIC_V3_ITS if PCI
> select ARM_PSCI
> - select ARM_PMUV3 if PERF_EVENTS
> + select ARM_PMUV3 if PERF_EVENTS && ARM_PMU
> select HAVE_ARM_ARCH_TIMER

We're discussing this one over at:

https://lore.kernel.org/r/202303281539.zzI4vpw1-lkp@intel.com

I'm leaning towards dropping the 'select' altogether.

Will