Re: Architecture baseline for Forky
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.
I believe there are also some newer CPU cores that simply don't
support the CP15 barriers at all.
Reply to: