RFR: Fix budgeting assertion [v2]
William Kemper
wkemper at openjdk.org
Tue Aug 9 18:14:07 UTC 2022
On Tue, 9 Aug 2022 16:19:39 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
>> 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.
Marked as reviewed by wkemper (Committer).
-------------
PR: https://git.openjdk.org/shenandoah/pull/156
More information about the shenandoah-dev
mailing list