RFR (XS): CR 8004330: Add missing Unsafe entry points for addAndGet() family
Aleksey Shipilev
aleksey.shipilev at oracle.com
Thu Dec 20 19:03:32 UTC 2012
Hi,
Sorry for cross-list posting, but this change affects both HS and JDK.
This simple change is missing from recently committed CR 7023898. While
the VM support is there in Hotspot, no methods are exposed in Unsafe to
actually make use of those intrinsics. This is the webrev fixing that:
http://cr.openjdk.java.net/~shade/8004330/webrev.00/
It turns out the getAndSet intrinsics HotSpot are overloaded, which had
deluged both Doug and me in the previous patch. These namings are
inconsistent with other Unsafe intrinsic naming convention, so this
change fixes that as well.
Testing:
- Built and tested in Linux x86_64
- java-concurrency-torture [1] atomicity tests are passed for
AtomicIntegerV8 [2] and AtomicLongV8 [3] making use of those intrinsics
on Linux x86_64
- running the java-concurrency-torture tests "-XX:+PrintInlining |
grep Unsafe" tells all intrinsics have been successfully inlined
- no other testing is expected for this trivial change.
I would need a sponsor to push this. Thanks for your patience and reviews!
Contributors:
- dl: original patch, testing
- shade: due diligence, messing with reviews, tests, and rebuilds
-Aleksey.
[1] https://github.com/shipilev/java-concurrency-torture/
[2]
https://github.com/shipilev/java-concurrency-torture/blob/master/src/main/java/org/openjdk/concurrent/torture/tests/atomics/integer/AtomicIntegerV8PairwiseTests.java
[3]
https://github.com/shipilev/java-concurrency-torture/blob/master/src/main/java/org/openjdk/concurrent/torture/tests/atomics/longs/AtomicLongV8PairwiseTests.java
More information about the core-libs-dev
mailing list