RFR: Clean up CondCardMark code: remove excess barriers, enable it by default [v2]
Zhengyu Gu
zgu at openjdk.java.net
Wed Mar 31 23:57:35 UTC 2021
On Wed, 31 Mar 2021 14:24:02 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> The `StoreLoad`, `StoreStore` barriers in that code are only needed for CMS, and does not relate to Shenandoah. Also, `UseCondCardMark` is a recommended option for most machines today, and therefore we better just enable it ergonomically.
>>
>> Additional testing:
>> - [x] hotspot_gc_shenandoah, x86_64, {fastdebug,release}
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> More cleanups of scanned_concurrently
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?
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/26
More information about the shenandoah-dev
mailing list