RFR: 8311883: [Genshen] Adaptive tenuring threshold [v11]
Y. Srinivas Ramakrishna
ysr at openjdk.org
Tue Aug 15 22:58:53 UTC 2023
On Tue, 11 Jul 2023 17:04:03 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> It is true that cancellations could lead to bogus partial censuses being used. I'll locate the right place in the cancellation path(s) where partial censuses will need to be expunged. Essentially, these would be the points where concurrent marking is canceled (when censuses are conducted during the marking phase) and where concurrent evacuation is canceled (when censuses are conducted during the evacuation phase). All other cancellations are fine because the census data will be valid despite cancellation in those cases.
>
> In the event of degeneration, if a census-collection phase is interrupted mid-stream and restarted afresh, the partial census will need to be expunged. It'll then be replaced by the new census (in e.g. degenerate GC's mark or evac). In the case of a degenerate STW GC being cancelled and degenerating further to a full STW GC, during _its_ census-collection phase the partial census will be expunged. Any completed censuses from any census taking phase that persisted will be used as before. Currently, all calculations are independent of the (start and end) time(s) of the (completed) censuses being used, but a future enhancement might potentially consider a temporal dimension. We'll capture the times in the census today, but those are not used by the algorithm today.
The time tracking of the census is a potential future enhancement.
Today each new census clears any old partial or interrupted censuses, but we do not track the start and end times of completed censuses.
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/289#discussion_r1295221746
More information about the shenandoah-dev
mailing list