RFR (XS) 8156068: Unsafe.{get|set}Opaque should be single copy atomic

Aleksey Shipilev aleksey.shipilev at oracle.com
Thu May 5 19:06:44 UTC 2016


Hi,

Please review a tiny fix in C2 intrinsics that make
Unsafe.{get|set}Opaque single-copy atomic, as intended. These opaque
methods are supposed to act like std::atomic(..., memord_relaxed), that
is, do not induce ordering, but still provide access atomicity.

Interpreter and C1 are delegating to volatile get/set, and so are atomic
already. C2 has a little bug that was introduced along with the initial
VarHandles change.

Bug:
 https://bugs.openjdk.java.net/browse/JDK-8156068

Webrev:
 http://cr.openjdk.java.net/~shade/8156068/webrev.00/

Testing: jcstress atomicity test on 32-bit x86; RBT (hs-tier0-comp).

Thanks,
-Aleksey


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20160505/a9cc638d/signature-0001.asc>


More information about the hotspot-compiler-dev mailing list