RFR: 8351091: Shenandoah: global marking context completeness is not accurately maintained [v7]

Y. Srinivas Ramakrishna ysr at openjdk.org
Thu Apr 3 22:57:50 UTC 2025


On Thu, 3 Apr 2025 22:31:27 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:

>> src/hotspot/share/gc/shenandoah/shenandoahVerifier.cpp line 1191:
>> 
>>> 1189:           _verify_remembered_after_full_gc,  // verify read-write remembered set
>>> 1190:           _verify_forwarded_none,      // all objects are non-forwarded
>>> 1191:           _verify_marked_incomplete,   // all objects are marked in incomplete bitmap
>> 
>> Is the marking bitmap updated as objects are moved to their new locations? Is that done just to satisfy the verifier?
>
> Yes, making bitmaps has been reset after full GC,  except for the for regions with pined objects.
> _verify_marked_complete requires complete marking context, it might make more sense to change it to _verify_marked_disable after full GC.

Curious; in that case should it not have failed in your testing because the objects not pinned may not have been marked as the verifier would have insisted they were? Why do we leave the regions with pinned objects marked? I am guessing once we have filled in the dead objects, the marks do not serve any purpose?

May be I am missing some corner case?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23886#discussion_r2027852832


More information about the hotspot-gc-dev mailing list