RFR: 8327000: GenShen: Integrate updated Shenandoah implementation of FreeSet into GenShen [v8]
Kelvin Nilsen
kdnilsen at openjdk.org
Wed Jun 19 18:05:38 UTC 2024
On Tue, 18 Jun 2024 00:45:59 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:
>> src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 992:
>>
>>> 990: // gc_no_progress_count is incremented following each degen or full GC that fails to achieve is_good_progress().
>>> 991: // Note that Generational Shenandoah may increment no_progress_count faster than traditional Shenandoah because young
>>> 992: // GCs, which may degenerate, typically occur more frequently than single-generation Global GCs.
>>
>> Should this documentation comment about the expected difference in rates of incrementation occur in the vicinity of any differences (or otherwise) in the setting of the default value of `ShenandoahNoProgressThreshold` in each case -- or if the default values are the same, then where the option is documented?
>>
>> I also wonder if `is_good_progress()` and `gc_no_progress_count` should apply uniformly in both cases to whole heap collections rather than to young collections (in the generational case). Otherwise, don't we run the risk of declaring no progress prematurely without a global collection in the case of generational, thus breaking in spirit the requirement of "best efforts attempt to reclaim unused memory"?
>
> In particular, how is the notion of progress treated in other generational collectors?
Thanks for asking these questions and digging into the details. I see in your other comment that it is the intention that we only increment gc_no_progress_count for consecutive full GCs. However, our implementation seems to have drifted from that intention. We also increment following a degen that does not make progress. And then we increment again in the Full GC after we upgrade to full. Maybe there are better ways to fix this. I'm investigating.
-------------
PR Review Comment: https://git.openjdk.org/shenandoah/pull/440#discussion_r1646564625
More information about the shenandoah-dev
mailing list