> The fix is to enable virtual threads support for late binding JVMTI agents. > The fix includes: > - New function `JvmtiEnvBase::enable_virtual_threads_notify_jvmti()` which > does enabling JVMTI VTMS transition notifications in case of agent loaded > into running VM. This function executes a VM operation counting VTMS > transition bits in all `JavaThread`'s to correctly set the static counter > `_VTMS_transition_count` needed for VTMS transition protocol. > - New function `JvmtiEnvBase::disable_virtual_threads_notify_jvmti()` which > is needed for testing. It is used by the `WhiteBox` API. > - New WhiteBox function `WB_SetVirtualThreadsNotifyJvmtiMode(JNIEnv* env, > jobject wb, jboolean enable)` needed for testing of this update. > - New regression test: `serviceability/jvmti/vthread/ToggleNotifyJvmtiTest` > > Testing: > - New test: `serviceability/jvmti/vthread/ToggleNotifyJvmtiTest` > - The originally failed tests are expected to pass now: > `runtime/vthread/RedefineClass.java` > `runtime/vthread/TestObjectAllocationSampleEvent.java` > - In progress: Run the tiers 1-6 to make sure there are no regression.
Serguei Spitsyn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 20 additional commits since the last revision: - Merge - set java_lang_Thread::is_in_VTMS_transition bit when notifyJvmti is off - minor simplification in ToggleNotifyJvmtiTest.java - review: addressed next round of review suggestions - review: tweak in count_transitions_and_correct_jvmti_thread_states - review: minor tweak in test - one more review round fixes - refactored jt->jvmti_thread_state() corrections in VM_SetNotifyJvmtiEventsMode - review: updated correction of jt->jvmti_thread_state() links in VM_SetNotifyJvmtiEventsMode - fixed trailing spaces in two files - ... and 10 more: https://git.openjdk.org/jdk/compare/5c31a0bf...b5624011 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/13133/files - new: https://git.openjdk.org/jdk/pull/13133/files/d38e53fd..b5624011 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=13133&range=16 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13133&range=15-16 Stats: 27373 lines in 728 files changed: 13694 ins; 9290 del; 4389 mod Patch: https://git.openjdk.org/jdk/pull/13133.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/13133/head:pull/13133 PR: https://git.openjdk.org/jdk/pull/13133