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