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