JDK-8311883 : [Genshen] Adaptive tenuring threshold
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: repo-shenandoah
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2023-07-11
  • Updated: 2025-05-30
  • Resolved: 2023-08-18
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Generational Shenandoah currently has the notion of a tenuring threshold but it isn't dynamically adapted, but rather kept fixed at 7. Adapt the tenuring threshold based on object demographics as determined by a recent GC that visits objects in the young generation.

The basic idea is to keep track of age-cohort populations at each minor GC epoch and use the historical data to determine if it would be a good idea to tenure or not based on recently measured mortality rates. A few tunables are exposed to play with these to determine some good settings.

Other variants are possible, and may be implemented / tested in the future as opportunity and data permit.

A design doc (draft) is attached.
Comments
Some GHA tests are failing due to JDK-8311843.
15-08-2023

A pull request was submitted for review. URL: https://git.openjdk.org/shenandoah/pull/289 Date: 2023-06-15 20:08:58 +0000
11-07-2023