RFR: 8325670: GenShen: Allow old to expand at end of each GC [v2]

Kelvin Nilsen kdnilsen at openjdk.org
Tue Feb 20 16:50:24 UTC 2024


On Tue, 20 Feb 2024 13:46:24 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>>> ... covering that one case of SOERP sending the value to NaN but not otherwise bounding it and allowing it to grow arbitrarily large and wrapping around).
>> 
>> I realize that there is in fact a natural bound to that value when SOERP < 100, viz. when it's 99 (since it's not a float): `young_reserve * 99/(100-99)`, i.e. `99 * young_reserve`. I guess the simpler thing to do then is to just avoid this completely and declare `ShenandoahEvactReserve` to `range(1,99)` and be done, throwing awy the protection for the lone case of `SOERP=100` -- after all we don't allow `SOERP=0`, so by symmetry it looks like we shouldn't allow 100 either, just `range(1,99)`.
>
> Thanks for these suggestions.    I'll see if I can stabilize a solution that works for all cases.

I've committed a new revision of this code.  Does this make it more clear?

(I'll still keep the sharing of Collector reserve code in a different PR.  That's a bit more subtle, and my first attempt at that code has introduced some regressions, which I'm debugging.)

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/394#discussion_r1496158166


More information about the shenandoah-dev mailing list