[aarch64-port-dev ] RFR: [8u] 8209835: Aarch64: elide barriers on all volatile operations

Yangfei (Felix) felix.yang at huawei.com
Wed Aug 28 07:01:01 UTC 2019


Hi,

Could I have a review for this backport to aarch64 8u repo please?

Webrev: http://cr.openjdk.java.net/~fyang/8209835-8u-backport/webrev.00/
Changes related to CompareAndExchange* and WeakCompareAndSwap* in the original patch are not needed for the aarch64 8u repo.

Volatile access inconsistency still exists for some unsafe operations.  One example is AtomicReference.
For the volatile field 'value', compareAndSet() method accesses it through unsafe.compareAndSwapObject().
And getAndSet() method accessed it through unsafe.getAndSetObject().
Currently, C2 will emit ldar & stlr to implement unsafe.compareAndSwapObject(), but that is not the case for unsafe.getAndSetObject().

C2 still emits explicit dmb instructions to implement unsafe.getAndSetObject().



Jtreg tested with aarch64 fastdebug build.  Also passed jcstress test.

    Corresponding 11u backport link:
https://mail.openjdk.java.net/pipermail/jdk-updates-dev/2019-August/001740.html

Thanks,
Felix


More information about the aarch64-port-dev mailing list