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

William Kemper wkemper at openjdk.org
Tue Oct 15 20:49:24 UTC 2024


On Thu, 10 Oct 2024 12:58:56 GMT, Roman Kennke <rkennke 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 478 commits:
>> 
>>  - Fix merge error
>>  - Merge remote-tracking branch 'jdk/master' into great-genshen-pr-redux
>>  - Merge remote-tracking branch 'jdk/master' into great-genshen-pr-redux
>>  - Merge branch 'shenandoah/master' into great-genshen-pr-redux
>>  - Merge
>>  - 8341099: GenShen: assert(HAS_FWD == _heap->has_forwarded_objects()) failed: Forwarded object status is sane
>>    
>>    Reviewed-by: kdnilsen
>>  - 8341485: GenShen: Make evac tracker a non-product feature and confine it to generational mode
>>    
>>    Reviewed-by: kdnilsen, ysr
>>  - Merge
>>  - 8341042: GenShen: Reset mark bitmaps for unaffiliated regions when preparing for a cycle
>>    
>>    Reviewed-by: kdnilsen
>>  - 8339616: GenShen: Introduce new state to distinguish promote-in-place phase as distinct from concurrent evacuation
>>    
>>    Reviewed-by: kdnilsen, shade, ysr
>>  - ... and 468 more: https://git.openjdk.org/jdk/compare/b9db74a6...4db1e0e1
>
> src/hotspot/share/gc/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp line 96:
> 
>> 94:   size_t capacity    = _space_info->soft_max_capacity();
>> 95:   size_t max_cset    = (size_t)((1.0 * capacity / 100 * ShenandoahEvacReserve) / ShenandoahEvacWaste);
>> 96:   size_t free_target = (capacity * ShenandoahMinFreeThreshold) / 100 + max_cset;
> 
> Does re-arranging the math here risk overflow (e.g. on 32-bit)?

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

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

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


More information about the shenandoah-dev mailing list