On Thu, 24 Oct 2024 14:52:27 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:

>> This fixes a problem in the VTMS (Virtual Thread Mount State) transition 
>> frames hiding mechanism.
>> Please, see a fix description in the first comment.
>> 
>> Testing:
>>  - Verified with new test `vthread/CheckHiddenFrames`
>>  - Mach5 tiers 1-6 are passed
>
> Serguei Spitsyn has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   review: removed asserts from continuationFreezeThaw.cpp again

src/hotspot/share/prims/jvmtiEnvBase.cpp line 667:

> 665: 
> 666: javaVFrame*
> 667: JvmtiEnvBase::check_and_skip_hidden_frames(bool is_in_VTMS_transition, 
> javaVFrame* jvf) {

reworked function looks much better! Now it's clear what the function does and 
I have a question what it should do.
The function checks `@JvmtiMountTransition` annotation first even if the thread 
is in transition.
If `@JvmtiMountTransition` is present, the code doesn't care about 
`@ChangesCurrentThread` (and doesn't case about `@JvmtiMountTransition` if 
in_transition + `@ChangesCurrentThread`).
But we have 2 methods in VirtualThread class (`switchToCarrierThread()` and 
`switchToVirtualThread()`) with both annotations.
So if the function is called when `switchToCarrierThread` is on top, the 
function skips this frame, but if the thread calls some other function without 
`@JvmtiMountTransition` annotation from `switchToCarrierThread`, the function 
returns `switchToCarrierThread`.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21397#discussion_r1815790409

Reply via email to