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

Arnd Bergmann posted 1 patch 1 year ago
arch/arm/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] ARM: mach-virt: fix PMUv3 dependendency
Posted by Arnd Bergmann 1 year ago
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
 
 config ARCH_AIROHA
-- 
2.39.2
Re: [PATCH] ARM: mach-virt: fix PMUv3 dependendency
Posted by Will Deacon 1 year ago
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