Thread Local Handshake in JVMTI functions

David Holmes david.holmes at oracle.com
Wed Apr 1 10:05:32 UTC 2020


On 1/04/2020 11:02 am, Yasumasa Suenaga wrote:
> 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.

https://bugs.openjdk.java.net/browse/JDK-8240918

I heard the RFR could be as soon as tomorrow :)

Cheers,
David

> 
> 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