RFR: Fix aarch64 after merge

Roman Kennke rkennke at redhat.com
Wed Apr 25 09:33:16 UTC 2018


> On 04/25/2018 12:35 AM, Roman Kennke wrote:
>> This moves code around in aarch64 to account for yesterday merge.
>>
>> http://cr.openjdk.java.net/~rkennke/fix-merge-aarch64/webrev.00/
> 
> barrierSetAssembler_aarch64.cpp: resolve_* deserve a comment that they are deliberately no-op.

Ok done.

>> There are two backportable changes that fix actual issues:
>> - c1_LIRGenerator.cpp to fix assert in TestSelectiveBarrierFlags.java
>> makes C1 barrier generation more consistent with interpreter and other
>> places
> 
> This should be RFR-ed separately for backports. I think the reason we called into shenandoah_*_impl
> methods is that we could still have a storeval barrier even if common WB/RBs are disabled. This
> patch stops emitting storevals with -XX:-ShWB -XX:-ShRB -XX:+ShSVB, when it really should. Is there
> an assert you are facing somewhere without this patch?

I fixed the asserts instead. They should allow
ShenandoahStoreValEnqueueBarrier. Which led me to notice that the
enqueue-barrier stuff is (and has been) completely lacking in
aarch64/interpreter. Traversal must have been broken in aarch64 since
forever ;-) I added it.

>> - write-barrier checking for EVACUATION | PARTIAL | TRAVERSAL instead of
>> just EVACUATION fixes partial+traversal modes
> 
> Please RFR that fix for sh/jdk10 separately?

Will do. It's in different places than in jdk11 anyway, and the
enqueue-barrier stuff should go with it too.

Differential:
http://cr.openjdk.java.net/~rkennke/fix-merge-aarch64/webrev.01.diff/
Full:
http://cr.openjdk.java.net/~rkennke/fix-merge-aarch64/webrev.01/

Ok now?

Roman



More information about the shenandoah-dev mailing list