Re: Architecture baseline for Forky

Peter Green <[email protected]> Thu, 30 Oct 2025 08:47:25 +0000
Newsgroups gmane.linux.debian.ports.arm,gmane.linux.debian.devel.kernel,gmane.linux.debian.devel.toolchain
Message-ID <[email protected]>
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