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

Kelvin Nilsen kdnilsen at openjdk.org
Wed Jan 8 20:52:45 UTC 2025


On Wed, 8 Jan 2025 20:15:30 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> 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).

I agree with @earthling-amzn that we should be able to reset young-generation mark bitmap even if this is old_gc_bootstrap and even if old marking is in progress.  We should dive deeper to figure out the crash you observed.  It seems we don't fully understand the root cause.

I also suggest rewording the comment.  trigged?  (See other comments about increasing generality of this approach.)

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

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


More information about the hotspot-gc-dev mailing list