RFR: 8314599: [GenShen] Couple adaptive tenuring and generation size budgeting [v3]

William Kemper wkemper at openjdk.org
Wed Oct 8 18:05:08 UTC 2025


On Tue, 7 Oct 2025 23:46:15 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> I called the complementary method `get_live_bytes_in_tenurable_regions`. How about `get_live_bytes_in_untenurable_regions`?
>
> 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.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27632#discussion_r2414631193


More information about the shenandoah-dev mailing list