RFR: Generational support for weak roots and references [v3]
Roman Kennke
rkennke at openjdk.java.net
Mon Aug 9 15:23:26 UTC 2021
On Fri, 6 Aug 2021 17:09:21 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).
>
> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 22 commits:
>
> - Merge branch 'master' into generational-weak-refs
> - Include oopHierarchy.hpp, rather than oop.hpp
> - Prepare for concurrent root processing in old generation final mark
> - Clear cards and object registrations when region is recycled
>
> This fixes an error when humongous regions are allocated and when ensures registrations are correct when regions are promoted.
> - Check that pointer is in heap before looking up affiliation
> - Guard assert from cross-generation handle
> - Configure soft reference policy for old generation
> - Merge branch 'shenandoah' into generational-weak-refs
> - Perform coalesce and fill after class unloading
> - Formatting fixes, remove TODO
> - ... and 12 more: https://git.openjdk.java.net/shenandoah/compare/5ebe8d10...9892fcce
Marked as reviewed by rkennke (Lead).
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/53
More information about the shenandoah-dev
mailing list