RFR: 8378293: GenShen: Simplify selection of aged regions

William Kemper wkemper at openjdk.org
Fri Feb 20 01:05:18 UTC 2026


Aged regions with a sufficient amount of live data may be promoted in place. Other aged regions with insufficient live data may have their objects evacuated by promotion. These regions bypass normal collection set selection. For historical reasons, this process used an intermediate array to pass these regions between components. After recent refactorings, this array is no longer necessary and other simplifications can be made.

There aren't meant to be any behavior changes in this PR. The main change here is that instead of using  a separate array for preselected regions, we just put them straight in the collection set. This change also no longer forces an evacuation/update-refs cycle when we _only_ have in-place-promotions (these can be done by an abbreviated cycle).

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

Commit messages:
 - Remove unused code
 - Fix zero build
 - Do not let PIP regions in the CSET
 - Remove misplaced assert
 - Make in place promoter back into a local variable
 - Fix initialization and stale data issue
 - Don't force evacuation for in place promotions
 - Consolidate some shared code
 - Make promotion planner a field so we can publish stats in JFR event at the end of collection set choosing
 - WIP: Consolidating more PIP concerns (doesn't build)
 - ... and 1 more: https://git.openjdk.org/jdk/compare/e515c10f...412f21d9

Changes: https://git.openjdk.org/jdk/pull/29832/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=29832&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8378293
  Stats: 309 lines in 12 files changed: 75 ins; 180 del; 54 mod
  Patch: https://git.openjdk.org/jdk/pull/29832.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/29832/head:pull/29832

PR: https://git.openjdk.org/jdk/pull/29832


More information about the shenandoah-dev mailing list