RFR: 8373839: Disable JVM TI suspension during JNI critical regions [v2]
David Holmes
dholmes at openjdk.org
Fri Dec 19 13:02:30 UTC 2025
On Fri, 19 Dec 2025 11:43:41 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
>> src/hotspot/share/runtime/suspendResumeManager.cpp line 70:
>>
>>> 68: // hang here. There is no way to time-out and abort the suspend request because
>>> 69: // the API does not allow for that - if a thread is live then it can be suspended.
>>> 70: if (target->in_critical_atomic()) {
>>
>> I think the target could also pick up this operation in the native->vm transition in `ReleasexxxCritical` or even with nesting in `GetxxxCritical`, so we should check target is not current thread.
>
> And if there is a safepoint in these transitions I realized we would deadlock because this thread will never be safepoint safe. So maybe better to move the spinning out as I suggested above?
Yeah I need to re-think this whole approach. What a mess. Thanks. :(
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28884#discussion_r2635022382
More information about the serviceability-dev
mailing list