RFR: 8327000: GenShen: Integrate updated Shenandoah implementation of FreeSet into GenShen [v8]

Y. Srinivas Ramakrishna ysr at openjdk.org
Wed Jun 19 01:01:31 UTC 2024


On Mon, 17 Jun 2024 20:39:33 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Minor refinements to test programs
>>   
>>   TestAllocIntArrays: comments to explain behavior.
>>   TestOldGrowthTriggers: reduce the number of loop iterations so this test
>>   will not time out on less powerful test platforms.
>
> src/hotspot/share/gc/shenandoah/shenandoahHeapRegion.cpp line 138:
> 
>> 136:          if (is_old()) {
>> 137:            heap->old_generation()->decrement_affiliated_region_count();
>> 138:            heap->old_generation()->decrease_capacity(region_size_bytes());
> 
> Should capacity be updated every time affiliated region count changes? If yes, then we could have increase/decrease affiliated region count increase/decrease capacity directly. If no, is this something peculiar to full GC?

What William asks above.

Additionally, it is also curious to me that the only caller of `make_young_maybe()` from full gc here: https://github.com/openjdk/shenandoah/blob/0350ce08f7362bc6091569f051760ef7c870e804/src/hotspot/share/gc/shenandoah/shenandoahFullGC.cpp#L993 seems to call it in only the non-generational case, while here we change affiliation from old (and adjust capacity & count) quite naturally only in the generational case (which is where old gen affiliation is possible).

I am clearly missing something here.

-------------

PR Review Comment: https://git.openjdk.org/shenandoah/pull/440#discussion_r1643612458


More information about the shenandoah-dev mailing list