RFR: 8298853: JvmtiVTMSTransitionDisabler should support disabling one virtual thread transitions [v3]

David Holmes dholmes at openjdk.org
Wed Dec 21 09:36:52 UTC 2022


On Tue, 20 Dec 2022 20:52:10 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> Now the `JvmtiVTMSTransitionDisabler` mechanism supports disabling VTMS transitions for all virtual threads only. It should also support disabling transitions for any specific virtual thread as well. This will improve scalability of the JVMTI functions operating on target virtual threads as the functions can be executed concurrently without blocking each other execution when target virtual threads are different.
>> New constructor `JvmtiVTMSTransitionDisabler(jthread vthread)` is added which has jthread parameter of the target virtual thread.
>> 
>> Testing:
>>   mach5 jobs are TBD (preliminary testing was completed):
>>    - all JVMTI, JDWP, JDI and JDB tests have to be run
>>    - Kitchensink
>>    - tier5
>
> Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
> 
>   address wqsecond round review comments

One nit with the "is locked" asserts but otherwise looks good. Thanks for the updates!

src/hotspot/share/classfile/javaClasses.cpp line 1739:

> 1737: void java_lang_Thread::inc_VTMS_transition_disable_count(oop java_thread) {
> 1738:   int val = VTMS_transition_disable_count(java_thread);
> 1739:   assert(JvmtiVTMSTransition_lock->is_locked(), "Must be locked");

You want to use `owned_by_self()` for these assertions - thanks.

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

Marked as reviewed by dholmes (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11690


More information about the serviceability-dev mailing list