RFR: 8311843: GenShen: assertion failed "Old generation affiliated regions must be less than capacity" [v2]

William Kemper wkemper at openjdk.org
Mon Aug 28 16:40:01 UTC 2023


On Sat, 26 Aug 2023 00:09:19 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
>> 
>>  - Merge remote-tracking branch 'shenandoah/master' into full-gc-max-capacity
>>  - Do not prematurely exit when reserving regions
>>  - 8314610: hotspot can't compile with the latest of gtest because of <iomanip>
>>    
>>    Reviewed-by: jiefu, stuefe
>>  - Force transfer of old regions to old generation capacity after full GC
>>  - Remove vestigial member and methods
>
> src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp line 1295:
> 
>> 1293:   }
>> 1294: }
>> 1295: 
> 
> When we rebuild, we compute target amounts of memory to_reserve_old and to_reserve_young.  We may not satisfy our targets if the Mutator.is_free memory is "too fragmented".  This would be rare, I think, but maybe deserving of a log_gc(info) message whenever we get to the end of rebuild and we are short.  I think the rest of the implementation is supposed to be robust to this scenario.  (i.e. if we did not reserve as much as we wanted to, then we will target a smaller collection set (in old or young)).

I'll have it log when it can't satisfy the collector's reserves.

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/311#discussion_r1307663073


More information about the shenandoah-dev mailing list