On Thu, 30 Mar 2023 00:55:59 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

>> src/hotspot/share/prims/jvmtiEnvBase.cpp line 1550:
>> 
>>> 1548: 
>>> 1549:       if (jt->is_in_VTMS_transition()) {
>>> 1550:         count++;
>> 
>> For those threads that are in a transition when we enable the events, 
>> shouldn't we also set the jvmti_is_in_VTMS_transition field for the 
>> corresponding vthread as we do in 
>> JvmtiVTMSTransitionDisabler::start_VTMS_transition()? It seems a 
>> JvmtiVTMSTransitionDisabler that targets that particular vthread could 
>> otherwise proceed after the safepoint while that vthread is still in the 
>> transition. The "all" JvmtiVTMSTransitionDisabler won't proceed because that 
>> one does check the _VTMS_transition_count counter. I see that in general we 
>> won't have access to the vthread oop though.
>
> Nice catch, thanks!
> Fixed now, but will push it together with other potential updates related to 
> your review comments.

The issue I see is that during a transition the vt_oop that we'll get will 
almost always be that of the carrier thread, because it's almost the first 
thing we change when unmounting, and the last we change when mounting.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13133#discussion_r1153672474

Reply via email to