Unfair qspinlocks on ARM64 without LSE atomics => 3ms delay in interrupt handling

Bouska, Zdenek zdenek.bouska at siemens.com
Tue Mar 28 02:39:38 PDT 2023


> > A longer cpu_relax() here would improve things (on arm64 this function
> > is a no-op) but maybe Thomas or Will have a better idea.
>
> I had a pretty gross cpu_relax() implementation using wfe somewhere on
> LKML, so you could try that if you can dig it up.

Do you mean cpu_relax() implementation from this email [1] from
Fri, 28 Jul 2017 ?

I tried to rebase it on recent Linux, but it did not even boot for me.
Only this was printed:
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0

But cpu_relax() implementation from [1] fixes my problem if I use it
only in irq_finalize_oneshot().

[1] https://lore.kernel.org/lkml/20170728092831.GA24839@arm.com/

Zdenek Bouska

--
Siemens, s.r.o
Siemens Advanta Development


More information about the linux-arm-kernel mailing list