Re: Architecture baseline for Forky
On Thu, Oct 30, 2025, at 06:39, Peter Green wrote:
> On 29/10/2025 13:47, Arnd Bergmann wrote:
>
> > 5. armv6k+vfpv3d16: Most ARMv6/v7 machines, including Raspberry
> > Pi zero/1 but not OMAP2 (Nokia N800/N810). Loses THUMB2 support
> > and v7/v8 CPU barriers among other minor differences.
>
> As maintainer of raspbian, I can say the memory barrier issue is
> one of the bigger thorns in our side and is the reason we continue
> to configure gcc for armv6 rather than armv6k.
>
> For the uninitiated, arm added memory barrier instructions in armv6k,
> as instructions on the system coprocessor (aka CP15). When targetting
> armv6k, compilers use these instructions to implement
> acquire/release/seqcst atomics.
>
> With armv7-a, arm deprecated the CP15 barriers and introduced the
> dmb instruction.
>
> The problem is that arm64 kernels by default trap the armv6k memory
> barriers into the kernel and emulate them. Asside from being slow
> this can also cause hangs if the optimiser moves a barrier inside
> a load-exclusive/store-exclusive loop.
Right, this is very unfortunate, and I suspect that this is something
we should change in both the arm64 kernel and in the compiler. If
you can point me to specific userspace code that has this problem,
I can probably come up with a kernel patch to work around it,
at least if that userspace code isn't obviously wrong.
Arnd
Reply to: