RFR: 8376756: GenShen: Improve encapsulation of generational collection set choosing [v2]

Kelvin Nilsen kdnilsen at openjdk.org
Fri Jan 30 23:12:06 UTC 2026


On Fri, 30 Jan 2026 00:46:39 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Choosing the collection set for Shenandoah's generational mode is somewhat more complicated than the non-generational modes. The logic is spread out in unnatural places which compounds the complexity. This change was spun off from https://github.com/openjdk/jdk/pull/27632. There is more to come, but I'm breaking the changes up over several PRs to facilitate reviewing.
>> 
>> Description of changes:
>> 
>> The methods:
>> * `ShGeneration::compute_evacuation_budgets`
>> * `ShGeneration::select_aged_regions`
>> * `ShGeneration::adjust_evacuation-budgets`
>> 
>> Were all moved into `ShGenerationalHeuristics`. The signature of `ShHeuritics::choose_collection_set` is restored to return `void` instead of returning a `size_t` which represents the number of old regions to be added to top off the collection set. The one heuristic that returned a non-zero value for this (`ShYoungHeuristics`) now carries it in a member variable.
>> 
>> Redundant keyword modifiers have been removed from the headers touched here.
>
> William Kemper has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix zero build

Thanks for this cleanup.

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

Marked as reviewed by kdnilsen (Committer).

PR Review: https://git.openjdk.org/jdk/pull/29496#pullrequestreview-3730868799


More information about the hotspot-gc-dev mailing list