RFR: 8337511: Implement JEP 404: Generational Shenandoah (Experimental) [v6]

William Kemper wkemper at openjdk.org
Wed Nov 13 23:44:43 UTC 2024


On Wed, 13 Nov 2024 10:57:08 GMT, Aleksey Shipilev <shade 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 503 commits:
>> 
>>  - Merge openjdk/jdk tip into great-genshen-pr-redux
>>  - Merge remote-tracking branch 'jdk/master' into merge-latest
>>  - Merge remote-tracking branch 'jdk/master' into merge-latest
>>  - Merge
>>  - 8342861: GenShen: Old generation in unexpected state when abandoning mixed gc candidates
>>    
>>    Reviewed-by: kdnilsen
>>  - 8342734: GenShen: Test failure gc/shenandoah/TestReferenceRefersToShenandoah.java#generational
>>    
>>    Reviewed-by: ysr
>>  - 8342919: GenShen: Fix whitespace
>>    
>>    Reviewed-by: xpeng, kdnilsen
>>  - 8342927: GenShen: Guarantee slices of time for coalesce and filling
>>    
>>    Reviewed-by: kdnilsen
>>  - 8342924: GenShen: Problem list gc/shenandoah/TestReferenceRefersToShenandoah.java
>>    
>>    Reviewed-by: kdnilsen, ysr
>>  - 8342848: Shenandoah: Marking bitmap may not be completely cleared in generational mode
>>    
>>    Reviewed-by: wkemper
>>  - ... and 493 more: https://git.openjdk.org/jdk/compare/1c448347...19b25bc3
>
> src/hotspot/share/gc/shenandoah/heuristics/shenandoahHeuristics.cpp line 67:
> 
>> 65:     _region_data[i].clear();
>> 66:   }
>> 67: #endif
> 
> I understand this is to make sure `union_tag` works well. But why don't we extend `clear` to initialize all fields, and do this block without `ASSERT`? This does not look like frequently used path. Generally, doing these inits only for debug modes might hide some assertion failures that would indicate a problem in product builds.

https://bugs.openjdk.org/browse/JDK-8344152

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21273#discussion_r1841326159


More information about the serviceability-dev mailing list