On Fri, 22 Dec 2023 00:31:51 GMT, Alex Menkov <amen...@openjdk.org> wrote:
>> HeapDumper dumps virtual threads in 2 places: >> - dumping platform threads (mounted virtual threads are dumped as separate >> thread object); >> - dumping heap objects when the object is `java.lang.VirtualThread`. >> >> In the 2nd case mounted virtual threads should be skipped (as they are >> already dumped with correct stack traces/stack references) >> Check that a virtual thread is mounted is non-trivial, method from >> JvmtiEnvBase was used for this. >> >> Testing: tier1..3, heapdump-related tests: >> open/test/hotspot/jtreg/serviceability,open/test/hotspot/jtreg/runtime/ErrorHandling,open/test/hotspot/jtreg/gc/epsilon,open/test/jdk/sun/tools/jhsdb > > Alex Menkov has updated the pull request incrementally with one additional > commit since the last revision: > > feedback: reimplemented ThreadDumpe::is_vthread_mounted() This seems good to me know - thanks for the updates. One minor suggestion below. src/hotspot/share/services/heapDumper.cpp line 1934: > 1932: // create a HPROF_GC_INSTANCE record for each object > 1933: DumperSupport::dump_instance(writer(), o, &_class_cache); > 1934: if (java_lang_VirtualThread::is_instance(o) Suggestion. Just to be clear add a comment // If we encounter an unmounted virtual thread it needs to be dumped explicitly. or something to that effect. Thanks. ------------- Marked as reviewed by dholmes (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/17134#pullrequestreview-1793820556 PR Review Comment: https://git.openjdk.org/jdk/pull/17134#discussion_r1434616383