[Bug target/70814] atomic store of __int128 is not lock free on aarch64
pinskia at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Jun 28 16:18:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70814
--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Richard Earnshaw from comment #5)
> I don't think so. It's to do with whether the CPU is permitted to 'crack'
> the operation into multiple micro-ops that proceed independently down the
> pipeline. LDAXP could still be cracked in this way provided that from that
> CPU's perspective other memory operations from that core were not re-ordered
> with respect to that operation in an incompatible manner. However, external
> memory operations could still cause the separate micro-ops to see different
> values.
Makes sense (and I Know of one micro arch which will doing that for casp).
So closing as invalid.
Note the locks used in libatomic are no where near fair and can cause sometimes
not progressing on one thread (but that is a separate bug and is recorded as
bug 59305).
More information about the Gcc-bugs
mailing list