RFR: Fix budgeting assertion [v2]
Kelvin Nilsen
kdnilsen at openjdk.org
Tue Aug 9 16:19:39 UTC 2022
> An assertion failure revealed problems with evacuation budgeting computations. Three changes are reflected in this pull request:
>
> 1. Memory set aside for the promotion reserve was not excluded from the allocation supplement
> 2. When the old evacuation reserve is larger than the memory consumed by old evacuation collection set, we loan the excess memory to allocation supplement to make sure this memory is not consumed by promotions. The number of regions set aside from this reserve for the allocation supplement must be rounded down from the total excess memory. (Before this patch, it was rounded up.)
> 3. The assertion test that was failing needed a <= comparison instead of a < comparison.
Kelvin Nilsen has updated the pull request incrementally with three additional commits since the last revision:
- Remove instrumentation
- Fix choose_collection_set to use region->index after quicksort
After region data is sorted in garbage order, index within the region
data array no longer matches the region->index(). Use the
region->index() to test whether the region was pre-selected rather than
using the index within the region data array. Very confusing that this
code ever worked. Perhaps this bug was introduced by some sort of merge
conflict.
- Assure that aged young regions are not promoted if not pre-selected
In the case that an aged young region is not pre-selected, it should not
be included in the collection set because there is not enough room in
old-gen to hold its promoted contents.
-------------
Changes:
- all: https://git.openjdk.org/shenandoah/pull/156/files
- new: https://git.openjdk.org/shenandoah/pull/156/files/e727640c..7d256dba
Webrevs:
- full: https://webrevs.openjdk.org/?repo=shenandoah&pr=156&range=01
- incr: https://webrevs.openjdk.org/?repo=shenandoah&pr=156&range=00-01
Stats: 43 lines in 1 file changed: 27 ins; 0 del; 16 mod
Patch: https://git.openjdk.org/shenandoah/pull/156.diff
Fetch: git fetch https://git.openjdk.org/shenandoah pull/156/head:pull/156
PR: https://git.openjdk.org/shenandoah/pull/156
More information about the shenandoah-dev
mailing list