RFR (XS): CR 8004330: Add missing Unsafe entry points for addAndGet() family
Vladimir Kozlov
vladimir.kozlov at oracle.com
Thu Dec 20 19:21:48 UTC 2012
Looks good for me. I will sponsor these changes after we get a review
from JDK side.
Thanks,
Vladimir
On 12/20/12 11:03 AM, Aleksey Shipilev wrote:
> 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