Re: [PATCH v2] arch: arm64: add early_param idle=<wfi|yield|nop>

Will Deacon <[email protected]> Tue, 4 Aug 2026 16:28:36 +0100
Newsgroups gmane.linux.documentation,gmane.linux.kernel,gmane.linux.ports.arm.kernel
Message-ID <anIFJJ3H-pHWhuL5@willie-the-truck>
On Fri, Jul 31, 2026 at 09:32:04PM +0200, Yureka Lilian wrote:
> On 7/31/26 18:16, Will Deacon wrote:
> > What do you think about a funny sort of hybrid approach where:
> > 
> >    * We have idle=, but it really only affects the idle loop
> >    * We have a cpu_errata entry to detect (based on the MIDR) this CPU
> >      and then avoid patching in the WFIT instructions (i.e. don't detect
> >      the ARM64_HAS_WFXT capability).
> > 
> > I think that would solve the case for you, as well as giving others finer
> > grained control over the idle implementation and adding the infrastructure
> > we need to handle a CPU with broken wfit.
> 
> The idle param portion, if implemented like you say only affecting the idle
> loop, should be rather uncontroversial.
> 
> Getting the other part of it (the WFIT in the delay function) right is much
> more difficult, but it also has less of an performance / efficiency impact
> if it's a bit on the conservative side and we can find a good solution
> independently of the idle param.

Thinking about this some more, why isn't the WFIT side handled with an
idreg override? If we extend the ID_AA64ISAR2_EL1 override entry in
arch/arm64/kernel/pi/idreg-override.c to include wfxt, then you can
nobble that on the cmdline as well.

Will