RFR: 8364343: Virtual Thread transition management needs to be independent of JVM TI [v3]
Patricio Chilano Mateo
pchilanomate at openjdk.org
Tue Nov 25 19:58:45 UTC 2025
On Sat, 22 Nov 2025 08:37:39 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
>> src/hotspot/share/runtime/mountUnmountDisabler.cpp line 147:
>>
>>> 145: MonitorLocker ml(VTMSTransition_lock);
>>> 146: while (is_start_transition_disabled(current, vth())) {
>>> 147: ml.wait(200);
>>
>> I see a lot of timed-waits throughout this code. Is that because we poll rather than synchronizing properly? All this potential busy-waiting is surely going to cause performance glitches.
>
> The timeouts are for reliability purposes only. Technically, they are not needed and can be removed after this code becomes stable. The `wait()` calls are inside while loop which rechecks the loop-ending conditions.
I tried to minimize the changes with respect to the current code so I kept the timed-waits. As Serguei points out we should be able to remove this particular one. As for the ones executed by the disablers, we could make them poll for the transition bits in a loop with backoff, similar to how we do it in safepoint and handshake cases. But I agree with Serguei we should do it in a separate bug once the code is stable.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28361#discussion_r2561204423
More information about the graal-dev
mailing list