Thread Local Handshake in JVMTI functions

Yasumasa Suenaga suenaga at oss.nttdata.com
Tue Mar 31 11:40:28 UTC 2020


Hi David,

On 2020/03/31 19:16, David Holmes wrote:
> Hi Yasumasa,
> 
> On 31/03/2020 8:06 pm, Yasumasa Suenaga wrote:
>> Hi all,
>>
>> Many JVMTI functions uses VM Operation to get information. However some of them need to stop only one thread - they don't need to stop all threads.
>> So I think we can use Thread Local Handshake as this webrev. It is example for GetOneCurrentContendedMonitor().
> 
> True, but at the moment handshakes involve the VMThread. There is work being done to support direct thread-to-thread handshakes and once that is done this kind of conversion should be more easily done. It might be worth waiting for that.

Thanks, I will be back to this topic when thread-to-thread handshake is done.
I wondered at first why VMThread involves handshake. Its improvement is welcome for me ;)


Cheers,

Yasumasa


>>    http://cr.openjdk.java.net/~ysuenaga/jvmti-thread-local-handshake/
> 
> An observation, it seems to me that calling_thread is not used when this is not a VMOperation.
> 
> Cheers,
> David
> 
>> Also I think we can replace following VM Operations to Thread Local Handshake:
>>
>> class VM_GetCurrentLocation
>> class VM_EnterInterpOnlyMode
>> class VM_UpdateForPopTopFrame
>> class VM_SetFramePop
>> class VM_GetOwnedMonitorInfo
>> class VM_GetCurrentContendedMonitor
>> class VM_GetFrameCount
>> class VM_GetFrameLocation
>>
>> What do you think?
>> It it is acceptable, I will file it to JBS and send review request.
>>
>>
>> Thanks,
>>
>> Yasumasa


More information about the serviceability-dev mailing list