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