RFR: DRAFT: Expand old on demand [v12]
Kelvin Nilsen
kdnilsen at openjdk.org
Sat Apr 15 23:08:21 UTC 2023
> This PR describes several proposed changes to dynamically adjust the sizes of old-gen and young-gen. In general, the objective is to keep old-gen as small as possible so that there is an abundance of memory available for the young-gen allocation runway.
>
> As currently drafted, there are regression failures. This DRAFT PR is published for the purpose of facilitating a careful code review.
Kelvin Nilsen has updated the pull request incrementally with three additional commits since the last revision:
- Degen GC needs to evacuate even if cset is empty in some cases
In particular, when there are humongous or regular regions to be promoted
in place, we still need to "evacuate", because the evacuation phase takes
responsibility for registering objects and building the remembered set.
- Refine generational assertions for full-gc mode
Certain assertions are not valid in full gc mode because full gc does not
necessarily maintain all invariants during the STW pause. By the time
full gc finishes, all invariants should be restored, and they are checked
then.
- Do not verify usage accounting at start of Full GC
If we degenerate to full in the middle of evacuation, usage accounts are in limbo.
-------------
Changes:
- all: https://git.openjdk.org/shenandoah/pull/248/files
- new: https://git.openjdk.org/shenandoah/pull/248/files/ab207852..585116df
Webrevs:
- full: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=11
- incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=10-11
Stats: 29 lines in 4 files changed: 14 ins; 5 del; 10 mod
Patch: https://git.openjdk.org/shenandoah/pull/248.diff
Fetch: git fetch https://git.openjdk.org/shenandoah.git pull/248/head:pull/248
PR: https://git.openjdk.org/shenandoah/pull/248
More information about the shenandoah-dev
mailing list