RFR: 8369068: GenShen: Generations still aren't reconciled assertion failure [v2]

William Kemper wkemper at openjdk.org
Wed Oct 22 23:23:23 UTC 2025


On Wed, 22 Oct 2025 01:21:30 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains nine commits:
>> 
>>  - Merge remote-tracking branch 'jdk/master' into reduce-gc_generation-usage
>>  - Merge remote-tracking branch 'jdk/master' into reduce-gc_generation-usage
>>  - Remove _gc_generation from ShenandoahHeap
>>  - Little cleanup, remove one active generation usage
>>  - Merge remote-tracking branch 'jdk/master' into reduce-gc_generation-usage
>>  - Finish removing usages of gc_generation, start on reducing usages of active_generation
>>  - Fix build
>>  - Use existing _generation field instead of Heap::_gc_generation where possible
>>  - Only shenandoah vm operations participate in active/gc generation scheme
>
> src/hotspot/share/gc/shenandoah/shenandoahMark.cpp line 82:
> 
>> 80: template<bool CANCELLABLE, StringDedupMode STRING_DEDUP>
>> 81: void ShenandoahMark::mark_loop(uint worker_id, TaskTerminator* terminator,
>> 82:                                ShenandoahGenerationType generation, StringDedup::Requests* const req) {
> 
> Since `ShenandoahMark` has a `_generation` data member with a `generation()` accessor, I'd rename the formal parameters of type `ShenandoahGenerationType` for all these methods from `generation` to `gen_type` or something like that to reduce confusion while reading the code.

Good point.

> src/hotspot/share/gc/shenandoah/shenandoahReferenceProcessor.cpp line 1:
> 
>> 1: /*
> 
> Some of the spots here on where we need a completed marking context and where we are permitted to use a possibly in flight marking context isn't terribly clear. At some point, we should probably go through and clarify.

The `complete_marking_context` method just has an assertion in it that marking is complete. I believe the only code that need access to the incomplete marking context is the marking code itself.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27703#discussion_r2453555375
PR Review Comment: https://git.openjdk.org/jdk/pull/27703#discussion_r2453558370


More information about the shenandoah-dev mailing list