RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent (original) (raw)
Aleksey Shipilev shade at redhat.com
Tue May 9 17:30:27 UTC 2017
- Previous message: RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
- Next message: RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
- Next message: RFR: AArch64: 8179954: AArch64: C1 and C2 volatile accesses are not sequentially consistent
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]