RFR: 8304303: implement VirtualThread class notifyJvmti methods as C2 intrinsics

Serguei Spitsyn sspitsyn at openjdk.org
Thu Mar 16 05:24:59 UTC 2023


This is needed for performance improvements in support of virtual threads.
The update includes the following:

1. Refactored the `VirtualThread` native methods:
    `notifyJvmtiMountBegin`     and `notifyJvmtiMountEnd`      => `notifyJvmtiMount`
    `notifyJvmtiUnmountBegin` and `notifyJvmtiUnmountEnd` => `notifyJvmtiUnmount`
2. Still useful implementation of old native methods is moved from `jvm.cpp` to `jvmtiThreadState.cpp`:
     `JVM_VirtualThreadMountStart`       => `VTMS_mount_begin`
     `JVM_VirtualThreadMountEnd`         => `VTMS_mount_end`
     `JVM_VirtualThreadUnmountStart`  = > `VTMS_unmount_begin`
     `JVM_VirtualThreadUnmountEnd`    => `VTMS_mount_end`
3. Intrinsified the `VirtualThread` native methods: `notifyJvmtiMount`, `notifyJvmtiUnmount`, `notifyJvmtiHideFrames`.
4. Removed the`VirtualThread` static boolean state variable `notifyJvmtiEvents` and its support in `javaClasses`.
5. Added static boolean state variable `_VTMS_notify_jvmti_events` to the jvmtiVTMSTransitionDisabler class as a replacement of the `VirtualThread` `notifyJvmtiEvents` variable.

Implementing the same methods as C1 intrinsics can be needed in the future but is a low priority for now.  

Testing:
 - Ran mach5 tiers 1-6. No regressions were found.

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

Commit messages:
 - fix traling spaces in a couple of files
 - minor update for VTMS_notify_jvmti_events variable
 - 8304303: implement VirtualThread class notifyJvmti methods as C2 intrinsics

Changes: https://git.openjdk.org/jdk/pull/13054/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=13054&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8304303
  Stats: 438 lines in 20 files changed: 265 ins; 125 del; 48 mod
  Patch: https://git.openjdk.org/jdk/pull/13054.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/13054/head:pull/13054

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


More information about the serviceability-dev mailing list