RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
Aleksey Shipilev
shade at redhat.com
Tue May 9 17:30:27 UTC 2017
On 05/09/2017 07:18 PM, Andrew Haley wrote:
> 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/
Makes sense to me.
-Aleksey
More information about the hotspot-dev
mailing list