RFR: 8298853: JvmtiVTMSTransitionDisabler should support disabling one virtual thread transitions

Serguei Spitsyn sspitsyn at openjdk.org
Mon Dec 19 12:29:49 UTC 2022


On Fri, 16 Dec 2022 14:14:54 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> src/hotspot/share/prims/jvmtiThreadState.cpp line 304:
>> 
>>> 302: 
>>> 303:   ThreadBlockInVM tbivm(thread);
>>> 304:   MonitorLocker ml(JvmtiVTMSTransition_lock, Mutex::_no_safepoint_check_flag);
>> 
>> Aside: this pattern looks very odd. Why not just lock with the safepoint check?
>
> @dholmes-ora
> Thank you for looking at this fix and for the comments.
> I will on replying and resolving them.

This update just follows the common pattern which was introduced about two years ago. At the moment I do not remember the exact reason. This code needs to wait for the counter to become zero and to use `ThreadBlockInVM` which can reach a safepoint in the destructor. Can we lock with a safepoint check in this case? Or we should get rid of the `ThreadBlockInVM` then?
I'll check if this can be fixed.

-------------

PR: https://git.openjdk.org/jdk/pull/11690


More information about the hotspot-dev mailing list