RFR: Merge openjdk/jdk:master [v2]

William Kemper wkemper at openjdk.org
Fri Aug 25 23:04:55 UTC 2023


> Merges tag jdk-22+12

William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 313 commits:

 - Use new ptrQueue API
 - Merge tag 'jdk-22+12' into merge-jdk-22-12
   
   Added tag jdk-22+12 for changeset 68815d54
 - Merge
 - 8311883: [Genshen] Adaptive tenuring threshold
   
   Generational Shenandoah currently has the notion of a tenuring threshold but it isn't dynamically adapted, but rather kept fixed at 7.
   
   We now adapt the tenuring threshold based on object demographics as determined by a recent GC that visits objects in the young generation.
   
   We 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 measured mortality rates. A few tunable (experimental) knobs are exposed to play with these to determine some good settings in the future.
   
   The object census is conducted by default at marking, and is subject to noise on account of objects whose age could not be determined because of displaced header. In this case, the computed tenuring threshold is used in the following evacuation of the same cycle. Optionally, the census can be conducted at evacuation time, but sees only objects that are in the collection set. In this case, the tenuring threshold that is computed is used for tenuring decisions in the next evacuation cycle.
   
   Other variants are possible, and may be implemented / tested in the future as opportunity and data permit.
   
   The computed tenuring threshold has not yet been coupled with size budgeting, but will be in a followup PR.
   
   At this time, performance measurements have not shown any benefit, but we believe that with the framework now in place, we may be able to find an adaptive tenuring algorithm that works better than the current one and provide performance benefits. Adaptive tenuring is enabled by default, but can be optionally disabled to mimic previous behavior.
   
   Reviewed-by: kdnilsen
 - 8309639: GenShen: Regression in LRU cache benchmark
   
   Reviewed-by: kdnilsen, ysr
 - 8312120: GenShen: Update OLD Live at end of Previous Marking after Full GC
   
   Reviewed-by: kdnilsen
 - 8313574: GenShen: Completing a global mark should also complete an old mark
   
   Reviewed-by: kdnilsen, ysr
 - Merge
 - Merge
 - 8312610: GenShen: Old generation available is unintentionally restricted by mutator's available memory
   
   Reviewed-by: kdnilsen, ysr
 - ... and 303 more: https://git.openjdk.org/shenandoah/compare/68815d54...da46497d

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

Changes: https://git.openjdk.org/shenandoah/pull/312/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=312&range=01
  Stats: 21412 lines in 216 files changed: 19522 ins; 909 del; 981 mod
  Patch: https://git.openjdk.org/shenandoah/pull/312.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/312/head:pull/312

PR: https://git.openjdk.org/shenandoah/pull/312


More information about the shenandoah-dev mailing list