Integrated: Generational support for weak roots and references
William Kemper
wkemper at openjdk.java.net
Mon Aug 9 16:11:17 UTC 2021
On Thu, 22 Jul 2021 22:53:56 GMT, William Kemper <wkemper at openjdk.org> wrote:
> ### Summary
> The LRB for non-strong references is modified to permit resurrection of objects outside the generation being collected. In other words, resurrection is only blocked for unmarked objects in the generation being collected.
>
> Each `ShenandoahGeneration` has its own reference processor instance. In some cases, a reference from the old generation may end up on the young generation discovered list if the reference points to a young referent (this would happen if the old reference is in the remembered set). However, young references that point to referents in the old generation are _not_ discovered. This has the effect of strongly marking the old generation referent. This also avoids the case of having young references on the old generation discovered list being evacuated/relocated while they wait for old generation reference processing (although we believe this case would be handled correctly by the existing update references code).
This pull request has now been integrated.
Changeset: be67d449
Author: William Kemper <wkemper at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/be67d449b903e28b47771e12c6f01c2e15693140
Stats: 164 lines in 23 files changed: 90 ins; 26 del; 48 mod
Generational support for weak roots and references
Reviewed-by: rkennke
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/53
More information about the shenandoah-dev
mailing list