RFR: 8304303: implement VirtualThread class notifyJvmti methods as C2 intrinsics [v2]
Serguei Spitsyn
sspitsyn at openjdk.org
Thu Mar 16 07:11:00 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.
Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
include jniHandles.hpp into sharedRuntime.cpp
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/13054/files
- new: https://git.openjdk.org/jdk/pull/13054/files/8a379320..397b6337
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=13054&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=13054&range=00-01
Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 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 core-libs-dev
mailing list