RFR: Expand old on demand [v52]

Kelvin Nilsen kdnilsen at openjdk.org
Fri May 19 14:26:12 UTC 2023


> This PR describes several proposed changes to dynamically adjust the sizes of old-gen and young-gen.  In general, the objective is to keep old-gen as small as possible so that there is an abundance of memory available for the young-gen allocation runway.
> 
> This PR now passes all GHA pre-integration tests and other internal CI tests.

Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:

  Improve handoff of generation sizing impacts
  
  At the end of a completed GC cycle, we make adjustments in the
  generation sizes.  These adjusted are based on the number of trash
  regions (the size of the just-evacuated collection set) and the number
  of regions needed within old-gen to support any mixed evacuation effort
  or promotion that is anticipated to happen during the next GC cycle.
  Recycling of trashed regions and transfer of region membership between
  generations happens after we rebuild the free set.  This commit assures that
  the free set rebuild process know how much memory will eventually be
  available in each generation after we finish reclaiming trashed regions
  and transfering regions between generations.

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

Changes:
  - all: https://git.openjdk.org/shenandoah/pull/248/files
  - new: https://git.openjdk.org/shenandoah/pull/248/files/2b517dcb..4298ca7e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=51
 - incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=50-51

  Stats: 191 lines in 7 files changed: 163 ins; 8 del; 20 mod
  Patch: https://git.openjdk.org/shenandoah/pull/248.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/248/head:pull/248

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


More information about the shenandoah-dev mailing list