RFR: Expand old on demand [v44]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Thu May 25 23:30:00 UTC 2023
On Wed, 24 May 2023 16:46:02 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> Let me experiment with reverting to original value. There were times when our heuristics were getting flat-footed and we triggered late after long idle spans, but this "fix" may have just masked a different problem that may now be resolved.
>
> I will revert this change. My test on the Extremem phased update workload reveals that this does cause some degenerated cycles that are avoided when we have the shorter interval. Specifically, that workload has a wait-for-start-of-simulation pause that results in a 45 seconds of GC idle time, followed by a late trigger that degenerates during mark and then a back-to-back trigger for the next GC (which is dealing with pent-up demand following the "long" degenerated pause) and this second GC also degenerates during mark. Following these two degenerated GCs, GenShen is able to recalibrate its heuristic triggers and stay ahead of pace throughout the remainder of the 20 minute simulation.
>
> I believe the reason we are caught off guard here is because we have not yet "learned" the allocation rate. The first (late) trigger after the 45s idle span is: Free (3096M) is below minimum threshold (3101M)
>
> Am reverting this change because I recognize that setting this to 30 seconds is arbitrary and not a robust fix to the bigger triggering problem.
Thanks that makes sense. In the fullness of time (not now), we should consider why we might even need a minor gc cycle occurring even at the rate of once every five minutes even when, say, there is no apparent allocation load.
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/248#discussion_r1205810962
More information about the shenandoah-dev
mailing list