RFR: 8338737: Shenandoah: Reset marking bitmaps after the cycle [v3]

William Kemper wkemper at openjdk.org
Wed Jan 8 20:28:25 UTC 2025


On Sat, 21 Dec 2024 01:48:10 GMT, Xiaolong Peng <xpeng at openjdk.org> wrote:

>> The old cycle may be preempted by young collections, but it is only really _cancelled_ by global cycles or full GCs. Control thread will resume old marking, but this operates independently from young bitmap regions. I think we can reset young region bitmaps even when concurrent old marking is on going.
>
> I think we are taking about the same thing, old gen could be preempted by young gc and resumed after the cycle. I have seem crash from gc verification caused by this, an old gc was bootstrapped but it was preempted/canceled multiple times right after the old gc started, eventually caused a crash from verifier because it expected the object in young is marked. I will share the gc log on slack later.

That sounds like an issue with the verifier then? Once a young cycle is complete, nothing should depend on the state of the bitmaps for young regions (if, for no other reason, evacuation could have moved objects so that the bitmaps no longer represent the addresses of marked objects that were evacuated).

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22778#discussion_r1907802968


More information about the hotspot-gc-dev mailing list