Integrated: 8319244: implement JVMTI handshakes support for virtual threads
Serguei Spitsyn
sspitsyn at openjdk.org
Tue Nov 21 08:20:20 UTC 2023
On Wed, 1 Nov 2023 18:44:04 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:
> The handshakes support for virtual threads is needed to simplify the JVMTI implementation for virtual threads. There is a significant duplication in the JVMTI code to differentiate code intended to support platform, virtual threads or both. The handshakes are unified, so it is enough to define just one handshake for both platform and virtual thread.
> At the low level, the JVMTI code supporting platform and virtual threads still can be different.
> This implementation is based on the `JvmtiVTMSTransitionDisabler` class.
>
> The internal API includes two new classes:
> - `JvmtiHandshake` and `JvmtiUnifiedHandshakeClosure`
>
> The `JvmtiUnifiedHandshakeClosure` defines two different callback functions: `do_thread()` and `do_vthread()`.
>
> The first JVMTI functions are picked first to be converted to use the `JvmtiHandshake`:
> - `GetStackTrace`, `GetFrameCount`, `GetFrameLocation`, `NotifyFramePop`
>
> To get the test results clean, the update also fixes the test issue:
> [8318631](https://bugs.openjdk.org/browse/JDK-8318631): GetStackTraceSuspendedStressTest.java failed with "check_jvmti_status: JVMTI function returned error: JVMTI_ERROR_THREAD_NOT_ALIVE (15)"
>
> Testing:
> - the mach5 tiers 1-6 are all passed
This pull request has now been integrated.
Changeset: 839dd653
Author: Serguei Spitsyn <sspitsyn at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/839dd653663867f770fbe4af0a57468675eb12db
Stats: 498 lines in 4 files changed: 138 ins; 334 del; 26 mod
8319244: implement JVMTI handshakes support for virtual threads
Reviewed-by: pchilanomate, amenkov
-------------
PR: https://git.openjdk.org/jdk/pull/16460
More information about the hotspot-dev
mailing list