GCC used to store pointers in FP registers on aarch64
Attila Szegedi
attila.szegedi@datadoghq.com
Mon Feb 24 14:48:07 GMT 2025
On Mon, Feb 24, 2025 at 1:21 PM Florian Weimer <fw@deneb.enyo.de> wrote:
> * Attila Szegedi:
>
> >> That seems … quite unlikely. GCC 8 has seen extensive use on
> >> AArch64, on a variety of implementations, and I don't recall
> >> problems in this area. I don't follow AArch64 *that* closely,
> >> admittedly, but I expect it would have caused quite a ruckus.
> >>
> >
> > Yeah. The lack of discussion also led me to believe that even if this is
> an
> > issue, it's definitely not a widely encountered one. (It's also possible
> > that it's a red herring, although, well, as I said, forcing general regs
> > only did fix it.)
>
> Is it non-deterministic? It might be a context switching issue in the
> kernel/hypervisor/firmware. I usually don't notice fixes for those
> because they do not lead to questions whether it's necessary to
> rebuild the whole distribution. These bugs do happen from time to time:
>
> [PATCH v3 0/8] KVM: arm64: FPSIMD/SVE/SME fixes
> <
> https://lore.kernel.org/linux-arm-kernel/20250210195226.1215254-1-mark.rutland@arm.com/
> >
>
Huh. That is interesting. Yes, it is non-deterministic. And it does occur
solely in containerized environments, so it's eminently possible it's a
hypervisor issue.
(Still, a bit amusing that nothing came up with regard to how I don't see
GCC 12 schedule pointers onto aarch64 FP registers anymore :-). I
understood from Kyrylo's post that it's probably because no such explicit
decision was made.)
Attila.
More information about the Gcc
mailing list