> 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 three additional commits since the last revision: - cosmetic changes in libVThreadStackRefTest.cpp - collect VT stack references if initial_object is null - moved transition disabler to correct functions ------------- Changes: - all: https://git.openjdk.org/jdk/pull/13254/files - new: https://git.openjdk.org/jdk/pull/13254/files/bb87bdb0..ae2085ad Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=13254&range=15 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=13254&range=14-15 Stats: 42 lines in 2 files changed: 17 ins; 7 del; 18 mod Patch: https://git.openjdk.org/jdk/pull/13254.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/13254/head:pull/13254 PR: https://git.openjdk.org/jdk/pull/13254