RFR: Load balance remembered set scanning [v2]
Kelvin Nilsen
kdnilsen at openjdk.org
Mon Aug 1 18:27:33 UTC 2022
On Fri, 29 Jul 2022 17:36:34 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Respond to reviewer comments
>
> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 2593:
>
>> 2591: // Future TODO: establish a second remembered set to identify which old-gen regions point to other old-gen
>> 2592: // regions which are in the collection set for a particular mixed evacuation.
>> 2593: if (start_of_range < end_of_range) {
>
> Before this change, we had update references and marking share most of the card scanning code. Is it no longer possible to share the card scanning code as before? Could we put some of this code in the scanner?
This is a good question. Before, we had "if (!is_mixed) { heap->card_scan->process_region(); } Now, in that case (the code is below), we have "else { ... scanner->process_region_slice(); ... } This sharing of code still exists, but it is made a little more complicated because we don't always process entire regions at once, and I reordered the control flow.
The is_mixed case was always handled locally (unshared code) with explicit iteration over objects. This is still handled locally, but it is also more complex in the new version of the code because we are working with "slices" of regions at a time.
-------------
PR: https://git.openjdk.org/shenandoah/pull/153
More information about the shenandoah-dev
mailing list