RFR (XS): CR 8004330: Add missing Unsafe entry points for addAndGet() family

Chris Hegarty chris.hegarty at oracle.com
Wed Jan 9 13:17:12 PST 2013


On 20 Dec 2012, at 19:21, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:

> Looks good for me. I will sponsor these changes after we get a review from JDK side.

Have I missed something, or are these changes not already in?

-Chris

> 
> 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 hotspot-compiler-dev mailing list