RFR: JDK-8305334: GenShen: reference processing needs a card-marking barrier [v2]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Fri Mar 31 20:55:53 UTC 2023
On Fri, 31 Mar 2023 16:57:29 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> Y. Srinivas Ramakrishna has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains four additional commits since the last revision:
>>
>> - Merge branch 'master' into ref_proc_card_mark_fix
>> - Add documentation comment & some assertions.
>> - When (generational) GC discovers j.l.Reference:s in both generations, then subsequent
>> processing of the discovered list may create new old to young pointers
>> which the young collector needs to know about. This fix takes care of
>> marking cards for that case.
>>
>> The issue was revealed during a verification failure and subsequently
>> verified by means of a check in the reference processing code to detect
>> the condition when the new cross generational pointer was being created
>> without the associated card-marking. This typically happens when
>> discovery is in both generations -- for young collections such Reference
>> objects in the old generation are discovered during the card scanning,
>> and for global collections when objects are marked. The situation is
>> typically rare in the case of young collections because the Reference
>> objects typically lie on dirty cards and hold pointers to referents in
>> the young generation.
>> - Shelve for now. May not compile.
>
> Marked as reviewed by kdnilsen (Committer).
Thanks @kdnilsen & @earthling-amzn : Could one of you /sponsor then I can land the change. Thanks!
-------------
PR Comment: https://git.openjdk.org/shenandoah/pull/238#issuecomment-1492589524
More information about the shenandoah-dev
mailing list