RFR: 8311883: [Genshen] Adaptive tenuring threshold [v11]

Y. Srinivas Ramakrishna ysr at openjdk.org
Tue Aug 15 22:53:41 UTC 2023


On Mon, 3 Jul 2023 23:38:51 GMT, Y. Srinivas Ramakrishna <ysr at openjdk.org> wrote:

>> Y. Srinivas Ramakrishna has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 82 commits:
>> 
>>  - Merge branch 'master' into adaptive_tenuring
>>  - Merge branch 'master' into adaptive_tenuring
>>  - Reposition a mis-positioned assert as well as surrounding if-test order.
>>  - Fix global flags to make adaptive tenuring with census at mark the
>>    default, along with ignoring mortality rates of cohorts older than the
>>    selected tenuring age at previous epoch.
>>  - Flag to ignore mortality rate of cohorts older than the tenuring age of
>>    most recent preious cycle when computing new tenuring threshold.
>>  - Clear partial census data before a new marking cycle.
>>    Allow consideration of mortality rate of youngest cohort for tenuring
>>    decisions. (It was previously excluded because census data didn't
>>    include the youngest cohort allocated in the current epoch.)
>>    
>>    Still to do: avoid tenuring revisionism a la Kelvin's suggestion.
>>  - jcheck whitespace.
>>  - Merge branch 'master' into adaptive_tenuring
>>  - Separate out clearing and testing of local and global portions of census
>>    data, towards expunging partial/interrupted census data as a next step.
>>  - Merge branch 'master' into adaptive_tenuring
>>  - ... and 72 more: https://git.openjdk.org/shenandoah/compare/a4f6425e...13fa9ac9
>
> src/hotspot/share/gc/shared/ageTable.hpp line 60:
> 
>> 58: 
>> 59:   void add(uint age, size_t oop_size) {
>> 60:     assert(age > 0 && age < table_size, "invalid age of object");
> 
> We now also include age 0 objects in the census for the case of concurrent collectors in the young generation. This slot would have `sizes[0] == 0` for our traditional use cases for generational stop-world collectors.
> 
> I'll upstream this change separately in a sibling PR/JBS. TBD.

https://bugs.openjdk.org/browse/JDK-8314329 will track this and other changes to the age table that need to be separately udstreamed.

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

PR Review Comment: https://git.openjdk.org/shenandoah/pull/289#discussion_r1295219544


More information about the shenandoah-dev mailing list