RFR: 8318190: GenShen: Be less aggressive with triggers for old-gen has expanded [v3]

William Kemper wkemper at openjdk.org
Tue Oct 17 16:25:21 UTC 2023


On Mon, 16 Oct 2023 23:17:34 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:

>> This patch reduces the frequency of old-has-grown triggers in the case that old usage is smaller than a particular threshold percentage (default value 5%) of the total heap size.  In this case, old is triggered for growth no more frequently than once every N cycles, where N defaults to 50.
>
> Kelvin Nilsen has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix whitespace

Some minor suggestions.

src/hotspot/share/gc/shenandoah/heuristics/shenandoahOldHeuristics.cpp line 519:

> 517:   }
> 518: 
> 519:   if (_growth_trigger) {

Could the trigger just evaluate the condition directly? It's not clear why we double check `_growth_trigger` condition instead of just checking once when trigger is evaluated?

src/hotspot/share/gc/shenandoah/shenandoahControlThread.hpp line 106:

> 104:   volatile GCMode _mode;
> 105:   shenandoah_padding(3);
> 106:   volatile size_t _consecutive_young;

This member would fit in better with `ShenandoahCollectorPolicy`, which gathers similar statistics via its `record` methods (`record_success_concurrent`, `record_success_old`, e.g.). We wouldn't need changes in `ShenandoahControlThread` in that approach.

src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp line 38:

> 36:                             constraint)                                     \
> 37:                                                                             \
> 38:   product(double, ShenandoahGenerationalMinOldGenGrowthPercent,             \

I'd rather not include `Generational` in these property names - I think it just makes them too long and I don't think users will confuse them with non-generational settings.

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

Changes requested by wkemper (Committer).

PR Review: https://git.openjdk.org/shenandoah/pull/341#pullrequestreview-1682699388
PR Review Comment: https://git.openjdk.org/shenandoah/pull/341#discussion_r1362349454
PR Review Comment: https://git.openjdk.org/shenandoah/pull/341#discussion_r1362337986
PR Review Comment: https://git.openjdk.org/shenandoah/pull/341#discussion_r1362341400


More information about the shenandoah-dev mailing list