RFR: 8354452: Shenandoah: Enforce range checks on parameters controlling heuristic sleep times
Y. Srinivas Ramakrishna
ysr at openjdk.org
Fri Apr 11 20:59:30 UTC 2025
On Fri, 11 Apr 2025 20:41:00 GMT, William Kemper <wkemper at openjdk.org> wrote:
> Without enforcing limits on `ShenandoahControlIntervalMin` and `ShenandoahControlIntervalMax`, the user may supply values that cause assertions to fail.
>
> This assertion failure has been observed in Genshen's regulator thread:
>
> #0 0x000028e8062d021a in ShenandoahRegulatorThread::regulator_sleep (this=0x4ef9701893b0) at src/hotspot/share/gc/shenandoah/shenandoahRegulatorThread.cpp:125
> #1 0x000028e8062d0027 in ShenandoahRegulatorThread::regulate_young_and_old_cycles (this=0x4ef9701893b0) at src/hotspot/share/gc/shenandoah/shenandoahRegulatorThread.cpp:95
> #2 0x000028e8062cfd06 in ShenandoahRegulatorThread::run_service (this=0x4ef9701893b0) at src/hotspot/share/gc/shenandoah/shenandoahRegulatorThread.cpp:51
>
> But it could just as easily happen in other modes to the `ShenandoahControlThread` instance.
Left a comment for consideration but changes look fine if this changes doesn't interfere with potential tuning space etc.
src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp line 1:
> 1: /*
Change looks fine, but I wonder about using a `naked_sleep()` and allowing longer durations without triggering asserts in those cases? Not sure where this could be used and whether 1-second is the maximum we might like for these numbers regardless.
-------------
Marked as reviewed by ysr (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/24602#pullrequestreview-2761556102
PR Review Comment: https://git.openjdk.org/jdk/pull/24602#discussion_r2040287010
More information about the shenandoah-dev
mailing list