RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
Andrew Haley
aph at redhat.com
Tue May 9 17:18:12 UTC 2017
In C2 we use LDAR/STLR to handle volatile accesses, but in C1 and the
interpreter we use separate DMB instructions and relaxed loads. When
used together, these do not form a sequentially-consistent memory
ordering. For example, if stores use STLR and loads use LDR;DMB a
simple Dekker idiom will fail.
This is extremely hard to test because the loads and stores have to be
in separately-compiled methods, but it is incorrect, and likely to
fail in very weakly-ordered implementations.
Note: this is for JDK 9.
http://cr.openjdk.java.net/~aph/8179954/
Andrew.
More information about the hotspot-dev
mailing list