The fix is to enable 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. ------------- Commit messages: - cleanup in vmOperation.hpp - restored one incorrectly removed function - removed temporary debugging changes - 8297286: runtime/vthread tests crashing after JDK-8296324 Changes: https://git.openjdk.org/jdk/pull/13133/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13133&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8297286 Stats: 380 lines in 9 files changed: 377 ins; 2 del; 1 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