RFR: 8329674: JvmtiEnvThreadState::reset_current_location function should use JvmtiHandshake [v2]

Patricio Chilano Mateo pchilanomate at openjdk.org
Thu Apr 11 16:34:46 UTC 2024


On Wed, 10 Apr 2024 04:21:23 GMT, Serguei Spitsyn <sspitsyn at openjdk.org> wrote:

>> The internal JVM TI JvmtiHandshake and JvmtiUnitedHandshakeClosure classes were introduced in the JDK 22 to unify/simplify the JVM TI functions supporting implementation of the virtual threads. This enhancement is to refactor the JVM TI internal functions JvmtiEnvThreadState::reset_current_location on the base of JvmtiHandshake and JvmtiUnitedHandshakeClosure classes.
>> 
>> Testing:
>>  - Ran mach5 tiers 1-6
>
> Serguei Spitsyn has updated the pull request incrementally with one additional commit since the last revision:
> 
>   review: refactored to get rid of overloaded doit functions

Looks good to me, just a few comments.

src/hotspot/share/prims/jvmtiEnvThreadState.cpp line 307:

> 305:     if (!JvmtiEnvBase::is_vthread_alive(target_h())) {
> 306:       return; // _completed remains false.
> 307:     }

Do we need this? We already do this check in JvmtiHandshake::execute().

src/hotspot/share/prims/jvmtiEnvThreadState.cpp line 309:

> 307:     }
> 308:     ResourceMark rm;
> 309:     javaVFrame *jvf = JvmtiEnvBase::get_vthread_jvf(target_h());

This method already handles both mounted and unmounted case, so do we need the first conditional above?

src/hotspot/share/prims/jvmtiEnvThreadState.cpp line 367:

> 365:       GetCurrentLocationClosure op;
> 366:       JvmtiHandshake::execute(&op, &tlh, thread, thread_h);
> 367: 

Seems we are missing a JvmtiVTMSTransitionDisabler.

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

PR Review: https://git.openjdk.org/jdk/pull/18630#pullrequestreview-1994658919
PR Review Comment: https://git.openjdk.org/jdk/pull/18630#discussion_r1561295746
PR Review Comment: https://git.openjdk.org/jdk/pull/18630#discussion_r1561298952
PR Review Comment: https://git.openjdk.org/jdk/pull/18630#discussion_r1561300541


More information about the serviceability-dev mailing list