RFR: 8368089: G1: G1PeriodicGCTask::should_start_periodic_gc may use uninitialised value if os::loadavg is unsupported [v2]

Thomas Schatzl tschatzl at openjdk.org
Tue Sep 23 08:18:15 UTC 2025


On Tue, 23 Sep 2025 07:55:33 GMT, Albert Mingkun Yang <ayang at openjdk.org> wrote:

>> Guanqiang Han has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Update g1PeriodicGCTask.cpp
>>   
>>   Disable the functionality when os::loadavg() is not supported.
>
> src/hotspot/share/gc/g1/g1PeriodicGCTask.cpp line 61:
> 
>> 59:       G1PeriodicGCInterval = 0;
>> 60:       log_warning(gc, periodic)("System loadavg not supported. Periodic GC is disabled "
>> 61:                                 "by setting G1PeriodicGCInterval to 0.");
> 
> This disables periodic-gc. It's not super obvious that this is desirable. My expectation would be if `G1PeriodicGCSystemLoadThreshold`, a fine tuning knob in controlling periodic-gc, is not supported, this tuning knob will just be ignored with a warning, instead of disabling periodic-gc completely.
> 
> However, I can also imagine starting periodic-gc when system-load is high can be detrimental, so disabling periodic-gc is safer.
> 
> (Just raising it for discussion.)

With "disable this functionality" I actually meant disabling the `G1PeriodicGCSystemLoadThreshold` check, but not completely disabling periodic GCs. The reason is that I do not think the impact will be that high. At least when choosing concurrent GC as the choice for getting back memory.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27413#discussion_r2371527123


More information about the hotspot-gc-dev mailing list