RFR: Add generations to freeset [v8]

Kelvin Nilsen kdnilsen at openjdk.org
Wed Apr 19 15:27:57 UTC 2023


> ShenandoahFreeSet has not yet been modified to deal efficiently with the combination of old-gen and young-gen collection set reserves.  This PR makes changes so that we can distinguish between collector_is_free, old_collector_is_free, and mutator_is_free.  Further, it endeavors to keep each set of free regions tightly packed, so the range of regions representing each set is small.
> 
> In its current form, this no longer fails existing regression tests (except for known problems that are being addressed independently)

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

 - Merge remote-tracking branch 'origin' into add-generations-to-freeset
 - Respond to reviewer feedback
   
   Various improvements suggested by reviewers.  Mostly improved comments
   and some minor refactoring.
 - Add TODO comment for exapnsion of old-gen
 - Remove debug instrumentation
 - Merge master
 - Fix calculation of minimum fill size
   
   We were incorrectly using byte size rather than word size.
 - Fix error in ShenandoahFreeSet usage accounting
   
   We were incorrectly increasing used for plab padding.  That is
   old_collector memory and should not affect mutator usage.  This commit
   also includes some refactoring, additional assertions, and additional
   verification of consistent free-space accounting.
 - Fix typo in a comment
 - Fix white space
 - Merge remote-tracking branch 'GitFarmBranch/add-generations-to-freeset' into add-generations-to-freeset
 - ... and 197 more: https://git.openjdk.org/shenandoah/compare/016bf071...7319eeeb

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

Changes: https://git.openjdk.org/shenandoah/pull/250/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=250&range=07
  Stats: 703 lines in 8 files changed: 567 ins; 22 del; 114 mod
  Patch: https://git.openjdk.org/shenandoah/pull/250.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/250/head:pull/250

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


More information about the shenandoah-dev mailing list