RFR: 8315044: GenShen: Verifier detects clean card should be dirty [v5]

Y. Srinivas Ramakrishna ysr at openjdk.org
Fri Sep 1 21:26:11 UTC 2023


On Fri, 1 Sep 2023 20:33:25 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> When a Reference object is newly discovered, it is placed onto the worker's thread-local discovered list.  This sometimes results in a reference from an old object to a young object, requiring that the remembered set card-table entry be marked as dirty.  This patch causes the marking to be performed.
>
> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Use card_mark_barrier() method and ShenandoahCardBarrier tests

One more change, I think? See comment in-line.

May be there is an issue with it though that I am not seeing which perhaps you might have tried already, but doesn't work? 

Rest looks good.

src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp line 590:

> 588:     if (heap->is_in_old(_pending_list_tail) && heap->is_in_young(former_head_of_global_list)) {
> 589:       heap->mark_card_as_dirty(_pending_list_tail);
> 590:     }

Can we just replace this section with `set_oop_field(_pending_list_tail, former_head_of_global_list)` ?

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

Marked as reviewed by ysr (Committer).

PR Review: https://git.openjdk.org/shenandoah/pull/314#pullrequestreview-1607677926
PR Review Comment: https://git.openjdk.org/shenandoah/pull/314#discussion_r1313537864


More information about the shenandoah-dev mailing list