Thread Local Handshake in JVMTI functions

Yasumasa Suenaga suenaga at oss.nttdata.com
Wed Apr 1 01:02:42 UTC 2020


Thanks Dan and Serguei!

I added a comment for this to JDK-8201641.

David, can you share Bug ID for thread-to-thread handshake?
I want to record it to JDK-8201641 as a blocker.


Yasumasa


On 2020/04/01 1:59, serguei.spitsyn at oracle.com wrote:
> Hi Yasumasa,
> 
> Yes, this works needs to be done.
> I'll take look at you webrev.
> 
> Thanks,
> Serguei
> 
> On 3/31/20 07:41, Daniel D. Daugherty wrote:
>> Add Robbin to this thread...
>>
>>
>> This reminded of the following RFE that Robbin filed:
>>
>>     JDK-8201641 JVMTI: GetThreadListStackTraces should use Thread-Local Handshakes
>>     https://bugs.openjdk.java.net/browse/JDK-8201641
>>
>> We could update 8201641 to include everything that Yasumasa-san is requesting.
>> Would be a good place to track it...
>>
>> Dan
>>
>>
>> On 3/31/20 7:40 AM, Yasumasa Suenaga wrote:
>>> 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