RFR: DRAFT: Add generations to freeset [v4]

Kelvin Nilsen kdnilsen at openjdk.org
Wed Apr 12 14:51:38 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.
> 
> As currently drafted, there are regressions represented by assertion failures and crashes.  The purpose of publishing this draft PR is to allow careful scrutiny of the code.

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

 - 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
 - Fixup assertions re: is_old_collector_free
 - Register fill object when retiring old regions
 - 8305202: Fix Copyright Header in ZonedDateTimeFormatterBenchmark
   
   Reviewed-by: rriggs, naoto, dcubed
 - 8304976: Optimize DateTimeFormatterBuilder.ZoneTextPrinterParser.getTree()
   
   Reviewed-by: naoto
 - ... and 193 more: https://git.openjdk.org/shenandoah/compare/c9a6355d...55a052e3

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

Changes: https://git.openjdk.org/shenandoah/pull/250/files
 Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=250&range=03
  Stats: 758 lines in 9 files changed: 660 ins; 10 del; 88 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