RFR: 8352185: Shenandoah: Invalid logic for remembered set verification [v2]
Xiaolong Peng
xpeng at openjdk.org
Wed Mar 19 00:35:29 UTC 2025
On Wed, 19 Mar 2025 00:04:07 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> The marking context is not complete anymore after ShenandoahMCResetCompleteBitmapTask, but ShenandoahMCResetCompleteBitmapTask only reset bitmaps for the regions w/o pinned objects, the place calling `set_mark_incomplete()` need to moved to some place after ShenandoahPostCompactClosure being executed if use complete_marking_context here.
>
> Can we move heap_region_iterate(&post_compact) and post_compact.update_generation_usage() before heap->workers()->run_task(ShenandoahMCResetCompletedBitmaptask) so that we can use complete_marking_context here? I'm a bit uncomfortable using an incomplete marking context as if it is complete. (I understand "why it works" in this case, but this looks like an "accident waiting to happen" when someone comes back to modify this code in the future.
I'm not uncomfortable changing the orders here since I am not sure if there is dependency on the execution order(even it should be working), but I can move set_mark_incomplete() to the a place close to the end of phase5_epilog.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24092#discussion_r2002196180
More information about the shenandoah-dev
mailing list