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