RFR: 8299414: JVMTI FollowReferences should support references from VirtualThread stack

Chris Plummer cjplummer at openjdk.org
Wed Apr 5 20:37:08 UTC 2023


On Thu, 30 Mar 2023 22:58:12 GMT, Alex Menkov <amenkov at openjdk.org> wrote:

> The fix updates JVMTI FollowReferences implementation to report references from virtual threads:
> - added heap scanning to report unmounted vthreads;
> - stacks of mounted vthreads are splitted into 2 parts (vittual thread stack and carrier thread stack), references are reported with correct thread id/class and object tags/frame depth;
> - common code to handle stack frames are moved into separate class;

test/hotspot/jtreg/serviceability/jvmti/vthread/FollowReferences/VThreadStackRefTest.java line 43:

> 41:  * mounted and unmounted virtual threads and reports correct thread id
> 42:  * (for mounted vthread it should be vthread id, and not carrier thread id).
> 43:  * Additionally tests that references from platform threads aree reported correctly

"aree" -> "are"

test/hotspot/jtreg/serviceability/jvmti/vthread/FollowReferences/VThreadStackRefTest.java line 93:

> 91:             createObjAndWait(VThreadMountedJNIReferenced.class);
> 92:             Reference.reachabilityFence(referenced);
> 93:         });

This code used to use a java loop to keep busy, but now it relies on a sleep loop in native code. Was the java loop problematic?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/13254#discussion_r1158982377
PR Review Comment: https://git.openjdk.org/jdk/pull/13254#discussion_r1158995466


More information about the serviceability-dev mailing list