RFR (S) 8019968: Reference CAS induces GC store barrier even on failure

Aleksey Shipilev aleksey.shipilev at oracle.com
Wed Jul 29 09:57:36 UTC 2015

On 07/29/2015 12:24 PM, Andrew Dinn wrote:
> On 29/07/15 09:58, Aleksey Shipilev wrote:
>> I would like to suggest a fix for: 
>> https://bugs.openjdk.java.net/browse/JDK-8019968
>> In short, current reference CAS intrinsic blindly emits
>> post_barrier, ignoring the CAS result. In some cases, notably
>> contended CAS spin-loops, we fail the CAS a lot, and thus go for a
>> post_barrier excessively. Instead, we can conditionalize on the
>> result of the store itself, and put the post_barrier only on
>> success path: http://cr.openjdk.java.net/~shade/8019968/webrev.01/
>> More performance results here: 
>> http://cr.openjdk.java.net/~shade/8019968/notes.txt
> Nice! The code looks fine and your test results are very convincing.
> I'll be interested to see how this looks on AArch64.

Thanks Andrew!

The change passes JPRT, so AArch64 build is available. The benchmark JAR
mentioned in the issue comments would run without intervention, taking
around 40 minutes. You are very welcome to try, while Reviewers are
taking a look. I can do that only next week.

> That said, I am afraid you still need a Reviewer!

That reminds me I haven't spelled out what testing was done:

 * JPRT on all open platforms
 * Targeted benchmarks
 * Eyeballing the generated x86 assembly


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

More information about the hotspot-compiler-dev mailing list