RFR: Improve humongous remset scan [v2]
Kelvin Nilsen
kdnilsen at openjdk.java.net
Thu Jun 16 04:01:52 UTC 2022
On Tue, 14 Jun 2022 22:50:20 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 2464:
>>
>>> 2462: // old-gen heap regions.
>>> 2463: if (r->is_humongous()) {
>>> 2464: // Need to examine both dirty and clean cards during mixed evac.
>>
>> Sorry, I'm not seeing it. This code looks like it will compute the same `end_of_object` for every region in the humongous object (line 2468), but `start_of_scan` will be `r->bottom`. It seems like this code will have every thread that encounters a region in the humongous object scan the regions between `r` and `end_of_object`. The original method `oop_iterate_humongous` would scan only between `r->bottom` and `r->top`. Maybe we want `end_of_object` to be `r->top` and combine that with only scanning dirty cards?
>
> Or, in this case, since we don't care about cards being dirty and we will scan the whole region, could just use the original method?
Agree that it is easier to just call the original function here. Thanks for your insight.
-------------
PR: https://git.openjdk.org/shenandoah/pull/144
More information about the shenandoah-dev
mailing list