RFR: 8328220: GenShen: Move generational mode operational parameters out of ShenandoahHeap
William Kemper
wkemper at openjdk.org
Tue Mar 19 15:05:51 UTC 2024
On Mon, 18 Mar 2024 23:17:43 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> * Many fields previously defined in `ShenandoahHeap` have been moved to `ShenandoahOldGeneration`.
>> * Generational specific serviceability has been moved to `ShenandoahGenerationalHeap`.
>> * Methods for sizing the old generation have been moved to `ShenandoahGenerationalHeap`.
>> * `ShenandoahGenerationalHeap::heap()` now asserts that the generational mode is active.
>
> src/hotspot/share/gc/shenandoah/shenandoahOldGeneration.hpp line 102:
>
>> 100:
>> 101: // This is used to return unused memory from a retired promotion LAB
>> 102: size_t unexpend_promoted(size_t decrement);
>
> May be mention in the `expend_promoted` comment that the accounting expends forward the space for an entire PLAB when its allocated, but "unexpends" any unused portion thereof when the PLAB is retired.
>
> What this tells me is that `_promoted_expended` is non-monotonic in the evacuation phase as we expend and unexpend, which means that checks against promoted reserve might also be subject to "flickering" a bit during the latter phases of evacuation.
I've added a comment to the field these methods operate on.
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/406#discussion_r1530568771
More information about the shenandoah-dev
mailing list