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

Xiaolong Peng xpeng at openjdk.org
Wed Mar 5 21:54:08 UTC 2025


> With the JEP 404: Generational Shenandoah implementation, there are generation specific marking completeness flags introduced, and the global marking context completeness flag is not updated at all after initialization, hence the global marking context completeness is not accurate anymore. This may cause expected behavior: [ShenandoahHeap::complete_marking_context()](https://github.com/openjdk/jdk/pull/23886/files#diff-d5ddf298c36b1c91bf33f9bff7bedcc063074edd68c298817f1fdf39d2ed970fL642) should throw assert error if the global marking context completeness flag is false, but now it always return the marking context even it marking is not complete, this may hide bugs where we expect the global/generational marking to be completed.
> 
> This change PR fix the bug in global marking context completeness flag, and update all the places using `ShenandoahHeap::complete_marking_context()` to use proper API.
> 
> ### Test
> - [x] hotspot_gc_shenandoah
> - [x] Tier 1
> - [x]  Tier 2

Xiaolong Peng has updated the pull request incrementally with two additional commits since the last revision:

 - Remove obsolete code comments
 - Address review comments

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23886/files
  - new: https://git.openjdk.org/jdk/pull/23886/files/465deaec..c78f66ee

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=23886&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=23886&range=01-02

  Stats: 9 lines in 4 files changed: 2 ins; 7 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/23886.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23886/head:pull/23886

PR: https://git.openjdk.org/jdk/pull/23886


More information about the shenandoah-dev mailing list