RFR: 8311843: GenShen: assertion failed "Old generation affiliated regions must be less than capacity" [v2]

William Kemper wkemper at openjdk.org
Fri Aug 25 23:31:21 UTC 2023


> There are a few fixes here:
> 
> During a Full GC, the compaction process is not constrained by the maximum capacity for young and old generations. We must, therefore, reestablish these constraints after the Full GC completes by _forcing_ the transfer of regions to old, if necessary.
> 
> When a region is "flipped" from the Mutator's free set to the Collector's, we cannot _force_ the transfer of the region because the young generation may not have any free regions.
> 
> A logic error in the loop which rebuilds the free set could prevent transferring free regions from the mutator to the collector reserves.

William Kemper has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:

 - Merge remote-tracking branch 'shenandoah/master' into full-gc-max-capacity
 - Do not prematurely exit when reserving regions
 - 8314610: hotspot can't compile with the latest of gtest because of <iomanip>
   
   Reviewed-by: jiefu, stuefe
 - Force transfer of old regions to old generation capacity after full GC
 - Remove vestigial member and methods

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

Changes:
  - all: https://git.openjdk.org/shenandoah/pull/311/files
  - new: https://git.openjdk.org/shenandoah/pull/311/files/8ecfc06b..3af6309e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=shenandoah&pr=311&range=01
 - incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=311&range=00-01

  Stats: 15309 lines in 643 files changed: 9721 ins; 1450 del; 4138 mod
  Patch: https://git.openjdk.org/shenandoah/pull/311.diff
  Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/311/head:pull/311

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


More information about the shenandoah-dev mailing list