RFR: Expand old on demand [v55]
Kelvin Nilsen
kdnilsen at openjdk.org
Mon May 22 17:10:25 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.
>
> This PR now passes all GHA pre-integration tests and other internal CI tests.
Kelvin Nilsen has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 142 commits:
- Merge remote-tracking branch 'origin' into expand-old-on-demand
- Remove extra debugging instrumentation
- Only anticipate promotion for younger regions if is_aging_cycle()
- Fix some syntax errors
related to preceding commit
- Better logging and fix fullgc to clear old deficit and surplus
- Fix typo in young_unaffiliated_regions calculation
- Improve handoff of generation sizing impacts
At the end of a completed GC cycle, we make adjustments in the
generation sizes. These adjusted are based on the number of trash
regions (the size of the just-evacuated collection set) and the number
of regions needed within old-gen to support any mixed evacuation effort
or promotion that is anticipated to happen during the next GC cycle.
Recycling of trashed regions and transfer of region membership between
generations happens after we rebuild the free set. This commit assures that
the free set rebuild process know how much memory will eventually be
available in each generation after we finish reclaiming trashed regions
and transfering regions between generations.
- Use max_capacity() rather than soft_max_capacity() for budgeting
- Fix whitespace
- Remove unused variable from function
This causes a compiler error on Windows builds.
- ... and 132 more: https://git.openjdk.org/shenandoah/compare/d7a706ef...53c899cd
-------------
Changes: https://git.openjdk.org/shenandoah/pull/248/files
Webrev: https://webrevs.openjdk.org/?repo=shenandoah&pr=248&range=54
Stats: 3386 lines in 35 files changed: 1946 ins; 934 del; 506 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