RFR: 8299414: JVMTI FollowReferences should support references from VirtualThread stack [v16]
Alex Menkov
amenkov at openjdk.org
Fri May 5 23:03:38 UTC 2023
> 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
More information about the hotspot-dev
mailing list