RFR: 8338383: Implement JEP 491: Synchronize Virtual Threads without Pinning [v12]
Richard Reingruber
rrich at openjdk.org
Sat Oct 26 06:54:16 UTC 2024
On Sat, 26 Oct 2024 01:40:41 GMT, Dean Long <dlong at openjdk.org> wrote:
>> Patricio Chilano Mateo has updated the pull request incrementally with two additional commits since the last revision:
>>
>> - Restore use of atPointA in test StopThreadTest.java
>> - remove interruptible check from conditional in Object::wait
>
> src/hotspot/cpu/aarch64/interp_masm_aarch64.cpp line 1555:
>
>> 1553: // Make VM call. In case of preemption set last_pc to the one we want to resume to.
>> 1554: adr(rscratch1, resume_pc);
>> 1555: str(rscratch1, Address(rthread, JavaThread::last_Java_pc_offset()));
>
> Is it really needed to set an alternative last_Java_pc()? I couldn't find where it's used in a way that would require a different value.
Its indeed difficult to see how the value is propagaged. I think it goes like this:
- read from the frame anchor and set as pc of `_last_frame`: https://github.com/pchilano/jdk/blob/66d5385f8a1c84e73cdbf385239089a7a9932a9e/src/hotspot/share/runtime/continuationFreezeThaw.cpp#L517
- copied to the result of `new_heap_frame`: https://github.com/pchilano/jdk/blob/66d5385f8a1c84e73cdbf385239089a7a9932a9e/src/hotspot/cpu/aarch64/continuationFreezeThaw_aarch64.inline.hpp#L99
- Written to the frame here: https://github.com/pchilano/jdk/blob/66d5385f8a1c84e73cdbf385239089a7a9932a9e/src/hotspot/cpu/aarch64/continuationFreezeThaw_aarch64.inline.hpp#L177
- Here it's done when freezing fast: https://github.com/pchilano/jdk/blob/66d5385f8a1c84e73cdbf385239089a7a9932a9e/src/hotspot/share/runtime/continuationFreezeThaw.cpp#L771
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21565#discussion_r1817702223
More information about the nio-dev
mailing list