RFR: 8299414: JVMTI FollowReferences should support references from VirtualThread stack [v9]
Serguei Spitsyn
sspitsyn at openjdk.org
Tue May 2 09:50:26 UTC 2023
On Mon, 1 May 2023 18:26:30 GMT, Alex Menkov <amenkov at openjdk.org> wrote:
>> The fix updates JVMTI FollowReferences implementation to report references from virtual threads:
>> - unmounted vthreads are detected, their stack references for JVMTI_HEAP_REFERENCE_STACK_LOCAL/JVMTI_HEAP_REFERENCE_JNI_LOCAL;
>> - stacks of mounted vthreads are splitted into 2 parts (virtual thread stack and carrier thread stack), references are reported with correct thread id/class tag/object tags/frame depth;
>> - common code to handle stack frames are moved into separate class;
>>
>> Threads are reported as:
>> - platform threads: JVMTI_HEAP_REFERENCE_THREAD (as before);
>> - mounted vthreads (synthetic references, consider them as heap roots because carrier threads are roots): JVMTI_HEAP_REFERENCE_OTHER;
>> - unmounted vthreads: not reported as heap roots.
>
> Alex Menkov has updated the pull request incrementally with one additional commit since the last revision:
>
> Added "no continuations" test case
test/hotspot/jtreg/serviceability/jvmti/vthread/FollowReferences/VThreadStackRefTest.java line 38:
> 36: * @test id=no-vmcontinuations
> 37: * @requires vm.jvmti
> 38: * @enablePreview
We do not @enablePreview at lines 28 and 38 anymore.
test/hotspot/jtreg/serviceability/jvmti/vthread/FollowReferences/VThreadStackRefTest.java line 41:
> 39: * @run main/othervm/native
> 40: * -XX:+UnlockExperimentalVMOptions -XX:-VMContinuations
> 41: * -Djdk.virtualThreadScheduler.parallelism=1
Why do we need the line 41 in this case?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13254#discussion_r1182331454
PR Review Comment: https://git.openjdk.org/jdk/pull/13254#discussion_r1182328988
More information about the serviceability-dev
mailing list