On Tue, May 26, 2026 at 08:21:47AM -0700, Boqun Feng wrote: > ARM64 already uses 64bit preempt count and the need reschedule bit is > maintained in a separate 32bit than the preempt count. Therefore preempt > count has enough bits to represent 16 level of NMI nesting, hence enable > it for ARM64. This saves a per-CPU variable and additional instructions > in the NMI path.
Egads, so ARM being load-store gets around the preempt bit scribble by moving it into a separate word. And while that works, that does *not* make the preempt_count 64bit. All of this really only works because the actual preempt count bits still fit inside a u32. The moment that changes, this comes unstuck :-( And I suppose this is the reason Mark wanted that name change. I suppose Power could employ the same scheme.. > Signed-off-by: Boqun Feng <[email protected]> > --- > arch/arm64/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index fe60738e5943..8178cb857115 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -248,6 +248,7 @@ config ARM64 > select PCI_SYSCALL if PCI > select POWER_RESET > select POWER_SUPPLY > + select HAS_SEPARATE_PREEMPT_RESCHED_BITS > select SPARSE_IRQ > select SWIOTLB > select SYSCTL_EXCEPTION_TRACE > -- > 2.50.1 (Apple Git-155) >

