RFR: Full region promotion

Kelvin Nilsen kdnilsen at openjdk.java.net
Mon Oct 4 17:16:32 UTC 2021


On Mon, 4 Oct 2021 17:05:57 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> That's a good catch.  I'm a bit inconsistent with this.  I think this is "harmless" because end_of_range does not limit the scanning within a single humongous object.  It only limits the search for the "next object" following an initially scanned object.  I agree I should fix this up to make the code less confusing.  (Do you agree that the error is "harmless as is"?   Would appreciate your careful eyes on this.)
>
> `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?

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

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


More information about the shenandoah-dev mailing list