Re: [PATCH] cpuidle: tegra: add ARCH_SUSPEND_POSSIBLE dependency

From: Arnd Bergmann
Date: Wed Oct 13 2021 - 17:55:55 EST


On Wed, Oct 13, 2021 at 10:49 PM Dmitry Osipenko <digetx@xxxxxxxxx> wrote:
> > diff --git a/drivers/cpuidle/Kconfig.arm b/drivers/cpuidle/Kconfig.arm
> > index 2cc3c208a180..af97992eaa82 100644
> > --- a/drivers/cpuidle/Kconfig.arm
> > +++ b/drivers/cpuidle/Kconfig.arm
> > @@ -100,6 +100,7 @@ config ARM_MVEBU_V7_CPUIDLE
> > config ARM_TEGRA_CPUIDLE
> > bool "CPU Idle Driver for NVIDIA Tegra SoCs"
> > depends on (ARCH_TEGRA || COMPILE_TEST) && !ARM64 && MMU
> > + depends on ARCH_SUSPEND_POSSIBLE
> > select ARCH_NEEDS_CPU_IDLE_COUPLED if SMP
> > select ARM_CPU_SUSPEND
> > help
> >
>
> Arnd, thank you for the patch!
>
> Apparently ARM_QCOM_SPM_CPUIDLE doesn't have that problem visible
> because it selects QCOM_SPM, which depends on ARCH_QCOM, and thus
> ARCH_QCOM should be auto-selected(?).

No, that's not how it works. In fact ARM_QCOM_SPM_CPUIDLE has the
exact same problem. I tried to check if there are other drivers affected
by this problem before I sent my patch, but I did something wrong and
missed this one.

> I'm curious whether this needs to
> be corrected, otherwise (ARCH_QCOM || COMPILE_TEST) doesn't make much
> sense for that driver. And then it will need the same Kconfig fix as well.
>
> I assume this problem wasn't caught by regular kernel build bots because
> they don't test randconfig, don't they?

They do test randconfig builds, but only a few of them. This one is
rather hard to hit, it probably took me 100 builds before I hit the first
one and I haven't run into the QCOM one yet, though I did see a
different issue for ARM_QCOM_SPM_CPUIDLE:

WARNING: unmet direct dependencies detected for QCOM_SPM
Depends on [n]: ARCH_QCOM [=n]
Selected by [y]:
- ARM_QCOM_SPM_CPUIDLE [=y] && CPU_IDLE [=y] && (ARM [=y] || ARM64)
&& (ARCH_QCOM [=n] || COMPILE_TEST [=y]) && !ARM64 && MMU [=y]

Arnd