RFR: Enable remembered set verification during global collections

William Kemper wkemper at openjdk.java.net
Wed Sep 8 22:00:21 UTC 2021


On Wed, 8 Sep 2021 20:36:05 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> There are two sets of changes here:
>>  * Fixes to the verifier itself to enable remembered set verification during global collection
>>  * Fixes to prevent the remembered set scan from parsing unmarked objects after a global collection
>> 
>> These changes pass the dacapo suite with `-XX:+ShenandoahVerify` and pass the shenandoah tier1 tests.
>
> src/hotspot/share/gc/shenandoah/shenandoahConcurrentGC.cpp line 1044:
> 
>> 1042: void ShenandoahConcurrentGC::op_global_coalesce_and_fill() {
>> 1043:   ShenandoahHeap* const heap = ShenandoahHeap::heap();
>> 1044:   ShenandoahGlobalCoalesceAndFill coalesce;
> 
> It looks like this is iterating over all old regions.  Not clear to me how we avoid coalescing and filling the regions that are part of the collection set.   I think our intent was to not coalesce-and-fill regions in the collection set.

The `ShenandoahGlobalCoalesceAndFill` closure only acts on old active, non-humongous regions.

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

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


More information about the shenandoah-dev mailing list