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