RFR: 8339616: GenShen: Introduce new state to distinguish promote-in-place phase as distinct from concurrent evacuation [v2]
William Kemper
wkemper at openjdk.org
Fri Sep 20 23:11:22 UTC 2024
> The generational mode for Shenandoah is able to promote regions in place (effectively moving an entire region of live objects, without evacuating any objects). It does this during a normal evacuation phase. However, in some cases, Shenandoah may choose to skip the evacuation phase, _even when there are entire regions to promote_. Prior to this PR, Shenandoah would essentially force itself into an evacuation phase, with nothing to evacuate. Though this was expedient, it cause all manner of knock-on effects and unintended consequences with barriers and asserts and the state of the heap. Here, we have reverted that business and created a path for this special "only doing in place promotions" cycle that does not cause the heap to expect to evacuate objects or find forwarding pointers in them.
William Kemper has updated the pull request incrementally with one additional commit since the last revision:
Do not enter oom-during-evac protocol when only promoting regions in place
-------------
Changes:
- all: https://git.openjdk.org/shenandoah/pull/503/files
- new: https://git.openjdk.org/shenandoah/pull/503/files/ffc2926e..0ed07e92
Webrevs:
- full: https://webrevs.openjdk.org/?repo=shenandoah&pr=503&range=01
- incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=503&range=00-01
Stats: 45 lines in 8 files changed: 26 ins; 11 del; 8 mod
Patch: https://git.openjdk.org/shenandoah/pull/503.diff
Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/503/head:pull/503
PR: https://git.openjdk.org/shenandoah/pull/503
More information about the shenandoah-dev
mailing list