Details
-
Bug
-
Resolution: Fixed
-
P4
-
None
-
repo-shenandoah
Description
The census for age-0 objects means something different than the census for all other ages. In particular, everything allocated during a particular cycle is considered to have age 0 at the end of that cycle. We cannot reclaim any of these objects until the next GC cycle.
Normally, we take the census at the end of concurrent marking. But age-0 objects will continue to accumulate during evacuation and update-refs.
The auto-tenure-age selection algorithm considers the delta between census at age 0 during cycle N and census at age 1 during cycle N+1. If this delta is sufficiently small, it concludes that we should promote objects of age 1, because these cohorts have demonstrated low mortality.
There is a suspicion that this choice causes undesirable premature promotion.
Either we need to understand and document this as a desirable behavior, or we want to disable auto-tenuring-age-selection from choosing age 1 as the promotion age.
A test workload has been demonstrated to generate almost 3x the amount of old-gen garbage between the GenShen version on 6/15 and the GenShen version on 9/11.
Normally, we take the census at the end of concurrent marking. But age-0 objects will continue to accumulate during evacuation and update-refs.
The auto-tenure-age selection algorithm considers the delta between census at age 0 during cycle N and census at age 1 during cycle N+1. If this delta is sufficiently small, it concludes that we should promote objects of age 1, because these cohorts have demonstrated low mortality.
There is a suspicion that this choice causes undesirable premature promotion.
Either we need to understand and document this as a desirable behavior, or we want to disable auto-tenuring-age-selection from choosing age 1 as the promotion age.
A test workload has been demonstrated to generate almost 3x the amount of old-gen garbage between the GenShen version on 6/15 and the GenShen version on 9/11.
Attachments
Issue Links
- relates to
-
JDK-8311883 [Genshen] Adaptive tenuring threshold
-
- Resolved
-
-
JDK-8321041 GenShen: adaptive tenuring model should be improved
-
- Open
-