RFR: 8373468: Shenandoah: Mutator may block at _gc_waiters_lock after allocation failure even block parameter is false [v5]
Xiaolong Peng
xpeng at openjdk.org
Thu Dec 11 22:23:00 UTC 2025
On Thu, 11 Dec 2025 20:34:55 GMT, William Kemper <wkemper at openjdk.org> wrote:
> Can you describe the scenario you are trying to fix here? The two control threads have different idle/wakeup conditions.
The major thing I am fixing in the PR is to make ShenandoahControlThread always honor the `block` parameter. In current impl ShenandoahControlThread may still block the mutator thread even `block` parameter is `false`, because the ShenandoahControlThread::request_gc blocks the mutator use _gc_waiters_lock for allocation failure; while ShenandoahGenerationalControlThread::request_gc doesn't, it simplify call `notify_cancellation(cause)` if cause is allocation failure.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/28758#issuecomment-3644032272
More information about the hotspot-gc-dev
mailing list