jstack, profilers and other tools

Egor Ushakov egor.ushakov at jetbrains.com
Mon Jul 11 17:37:13 UTC 2022


Hi all,

I'm trying to prepare IntelliJ for loom and have some trouble 
understanding how tooling should be modified:
1. with debugger it is more or less ok - virtual threads are separated 
from carrier threads, stack are separate and debugger is responsible for 
showing all of this.
2. thread dumps (jstack as an example) - no virtual threads are shown, 
carrier threads stacks are truncated even if they are doing some work in 
the mounted virtual threads. It is not clear for me how users should 
understand what (even mounted) virtual thread are doing. Should we 
always switch to the new json format? Should user decide on which format 
to use? Previously thread dumps way an easy way to grab "what the app is 
doing" at the moment. Is there a way to achieve this now? Or this way 
should be abandoned?
3. Profilers - with jfr I was not able to see any sampling data for 
virtual threads, where should I find it? With async-profiler (using 
AsyncGetCallTrace) it is still posible to see the sampling data (and 
merged stacks when vthread is mounted) - good. Hopefully this wont break?

Could someone please clarify this?

Thanks,
Egor




More information about the loom-dev mailing list