[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Architecture baseline for Forky



On 30/10/2025 08:28, Arnd Bergmann wrote:
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.
https://github.com/rust-lang/rust/issues/53670




Reply to: