RFR: Clean up CondCardMark code: remove excess barriers, enable it by default [v2]

Aleksey Shipilev shade at openjdk.java.net
Thu Apr 1 16:10:38 UTC 2021


On Thu, 1 Apr 2021 00:11:16 GMT, earthling-amzn <github.com+71722661+earthling-amzn at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/gc/shenandoah/shenandoahBarrierSetAssembler_aarch64.cpp line 393:
>> 
>>> 391:   if (UseCondCardMark) {
>>> 392:     Label L_already_dirty;
>>> 393:     __ membar(Assembler::StoreLoad);
>> 
>> I believe this StoreStore barrier is for preventing race against concurrent refinement. Question is that, generational Shenandoah going to implement concurrent refinement in the future?
>
> We plan to start work on concurrent remembered set scanning very soon. I'm not far enough into it yet to know if we'll need these barriers, but it looks like we might.

Either way, this thing is gone with https://bugs.openjdk.java.net/browse/JDK-8261309 -- and it was needed for CMS. I would prefer to drop it to match upstream, and then reintroduce the barriers iff they are needed.

-------------

PR: https://git.openjdk.java.net/shenandoah/pull/26


More information about the shenandoah-dev mailing list