RFR: DRAFT: Expand old on demand [v23]

Kelvin Nilsen kdnilsen at openjdk.org
Tue Apr 25 18:31:53 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.
> 
> As currently drafted, there are regression failures.  This DRAFT PR is published for the purpose of facilitating a careful code review.

Kelvin Nilsen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 100 commits:

 - Merge remote-tracking branch 'origin' into expand-old-on-demand
 - More fixes to verification of deferred generation accounting
   
   During promote in place, certain regions are re-affiilated old before the
   total amounts of memory consumed by these regions have been tallied into
   the respective region's totals.
 - Fix assert to use <= insted of <
 - Make verifier adjust for deferred accounting of humongous waste
 - Disable certain assertions for global generation
   
   This is a temporary fix.  After global generation correctly accounts for
   affiliated regions, we can enable these assertions anew.
 - Minor comment fixups following merge
 - Merge remote-tracking branch 'origin' into expand-old-on-demand
 - Do not call min_threshold unless generation is not old
   
   Following the merge, min_threshold() asserts generation is not old.
   min_threshold() is not relevant to old-generation GC triggers.
 - Merge remote-tracking branch 'origin' into expand-old-on-demand
 - Fix whitespace errors
 - ... and 90 more: https://git.openjdk.org/shenandoah/compare/64d14f3b...fa771162

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

Changes: https://git.openjdk.org/shenandoah/pull/248/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=22
  Stats: 3253 lines in 35 files changed: 1830 ins; 885 del; 538 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