RFR: 8314599: [GenShen] Couple adaptive tenuring and generation size budgeting [v3]
Kelvin Nilsen
kdnilsen at openjdk.org
Tue Oct 14 16:57:55 UTC 2025
On Wed, 8 Oct 2025 18:01:55 GMT, William Kemper <wkemper at openjdk.org> wrote:
>> I'm still maybe a bit confused. Is it get_untenurable_live_bytes_in_young_regions()? Are we distinguishing?
>>
>> So we have a total of N live bytes within young regions that have been placed into the collection set. We expect that P bytes (P < N) will be promoted, and the remaining S bytes (S + P == N) will be evacuated to "survivor space" within young.
>>
>> Does get_live_bytes_in_untenurable_regions() equal P + S?
>
> The _tenure_ here refers to the regions the objects reside in, not the objects themselves. `get_live_bytes_in_tenurable_regions` is the sum of live bytes in all regions with an age above the tenuring threshold (we expect to promote _all_ of these, though some promotions may fail). It's complement `get_live_bytes_in_untenurable_regions` is the sum of live bytes in all regions with an age less than the tenuring threshold (we expect to promote _some_ of these, but we don't really know how many). This was part of the reason I wanted to rename these methods. They represent the provenance of the objects in the collection set, not necessarily the regions they will be evacuated to.
> get_live_bytes_in_untenurable_regions is the sum of live bytes in all regions with an age less than the tenuring
> threshold (we expect to promote some of these, but we don't really know how many)
Given that the promotion potential is determined by mark-time age census, I was thinking we do know how many of the bytes in untenurable_regions we "expect to promote". Isn't this just total_promotable_bytes - get_live_bytes_in_tenurable_regions()?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/27632#discussion_r2429856399
More information about the shenandoah-dev
mailing list