RFR: 8316682: serviceability/jvmti/vthread/SelfSuspendDisablerTest timed out [v6]
Serguei Spitsyn
sspitsyn at openjdk.org
Mon May 5 23:55:21 UTC 2025
On Mon, 5 May 2025 15:06:37 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:
>> Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
>>
>> review: patch from Patricio with alternate approach
>
> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1798:
>
>> 1796: return JVMTI_ERROR_THREAD_SUSPENDED;
>> 1797: }
>> 1798: if (!java_thread->java_suspend(single_suspend)) {
>
> We could use `is_virtual && single_suspend` (same in resume) and change `_handshakee->is_vthread_mounted()` to be an assert in `HandshakeState::set_suspended()`.
Thank you for suggestion. Let me check if I understand you right.
We can rename the parameter `update_vthread_list` to `register_vthread_suspend_or_resume` and pass `is_virtual && single_suspend` instead of `single_suspend` to `java_suspend()` and `java_resume()`.
We also want to change the `HandshakeState::set_suspended()` as below:
void HandshakeState::set_suspended(bool is_suspend, bool register_vthread_suspend_or_resume) {
#if INCLUDE_JVMTI
if (register_vthread_suspend_or_resume) {
assert(_handshakee->is_vthread_mounted(), "sanity check");
if (is_suspend) {
JvmtiVTSuspender::register_vthread_suspend(_handshakee->vthread());
} else {
JvmtiVTSuspender::register_vthread_resume(_handshakee->vthread());
}
}
#endif
Atomic::store(&_suspended, is_suspend);
}
Is this correct?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24269#discussion_r2074407231
More information about the serviceability-dev
mailing list