RFR: 8348400: GenShen: assert(ShenandoahHeap::heap()->is_full_gc_in_progress() || (used_regions_size() <= _max_capacity)) failed: Cannot use more than capacity # [v2]

William Kemper wkemper at openjdk.org
Wed Mar 12 23:17:44 UTC 2025


> Shenandoah cannot recycle immediate trash regions during the concurrent weak roots phase, however some of these regions may be assigned to the old generation collector's reserve. When an evacuation/promotion tries to allocate in such a region, it will fail (as expected) and try to 'steal' a region from the mutator's partition of the free set.  There are cases when this cannot be allowed due to capacity constraints. However, in some of these cases it will be possible to 'swap' a region between the old reserve and the mutator's partition. This change covers this case.

William Kemper has updated the pull request incrementally with one additional commit since the last revision:

  Revert "Do not enforce size constraints on generations"
  
  This reverts commit 11ff0677449fa6749df8830f4a03f1c7861ba314.

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/23998/files
  - new: https://git.openjdk.org/jdk/pull/23998/files/11ff0677..a42efe5a

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

  Stats: 10 lines in 1 file changed: 10 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/23998.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23998/head:pull/23998

PR: https://git.openjdk.org/jdk/pull/23998


More information about the shenandoah-dev mailing list