RFR: Improve humongous remset scan [v2]
Kelvin Nilsen
kdnilsen at openjdk.java.net
Thu Jun 16 04:01:53 UTC 2022
On Tue, 14 Jun 2022 22:35:31 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Improvements requested by reviewer
>
> src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp line 585:
>
>> 583: // DO NOT CANCEL. If this worker thread has accepted responsibility for scanning a particular range of addresses, it
>> 584: // must finish the work before it can be cancelled.
>> 585: void ShenandoahHeapRegion::oop_iterate_humongous_slice(OopIterateClosure* blk, bool dirty_only,
>
> Should this also be used during marking scan?
There is a similar solution that divides the humongous regions into slices smaller than the full region size, but this is planned for a future pull request. It is less critical to divide into smaller slices during update refs because the "structure" of update references allows some worker threads to begin updating old-gen references even before all threads have finished updating references within young-gen.
> src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp line 621:
>
>> 619: // Scan all data, regardless of whether cards are dirty
>> 620: while (num_cards-- > 0) {
>> 621: obj->oop_iterate(blk, MemRegion(start, start + CardTable::card_size_in_words()));
>
> Could this just be `obj->oop_iterate(blk, MemRegion(start, start + CardTable::card_size_in_words() * num_cards))`?
Yes. Thanks.
-------------
PR: https://git.openjdk.org/shenandoah/pull/144
More information about the shenandoah-dev
mailing list