RFR: Full region promotion
William Kemper
wkemper at openjdk.java.net
Mon Oct 4 18:31:34 UTC 2021
On Mon, 4 Oct 2021 17:13:20 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> `end_of_range` is used earlier to compute the `count` parameter (which is named `num_clusters` in the calling function). As I read it, this _does_ limit the number of cards scanned in the `process_clusters` call.
>
> The way I read it, if you call process_clusters with an address that represents the start of a humongous region, it will go through its object-processing loop at least once (p < endp first time through) and will completely scan the object found at p, which will be a humongous object that spans multiple following regions (which may exceed count clusters scanned in total and may reach reach well beyond endp in total scan). Do you agree with this?
Ah, okay - the `obj->oop_iterate` (or more likely, `array->oop_iterate_range`) will cover the entire humongous object if there is a dirty card in the start region. If the humongous object has no dirty cards in the start region, the last card for the object will be past the end card for this cluster and we'll `oop_iterate` it anyway.
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/75
More information about the shenandoah-dev
mailing list