<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:DengXian;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:Aptos;
panose-1:2 11 0 4 2 2 2 2 2 4;}
@font-face
{font-family:"\@DengXian";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;
mso-ligatures:standardcontextual;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Aptos",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:422386440;
mso-list-template-ids:1803824038;}
@list l0:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l0:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1
{mso-list-id:1557163151;
mso-list-template-ids:321944960;}
@list l1:level1
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level2
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:1.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level3
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:1.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level4
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:2.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level5
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:2.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level6
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:3.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level7
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:3.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level8
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:4.0in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
@list l1:level9
{mso-level-number-format:bullet;
mso-level-text:\F0B7 ;
mso-level-tab-stop:4.5in;
mso-level-number-position:left;
text-indent:-.25in;
mso-ansi-font-size:10.0pt;
font-family:Symbol;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="#467886" vlink="#96607D" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt">Hello Everyone,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">I am researching virtual thread implementation in JDK21. I have some questions list below. Hope to get some answers and hints from our community.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">VT will be mounted to PT. It is M:N model. Do we have recommended M (number of VT) comparing with N (number of PT, typically it is equal to the number of cores of CPU)?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">If VT is created, but never mounted to PT (never run), how do we find this situation?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">The default value for the parallelism is the number of CPU cores. Setting the parallelism to 256 (max allowed by JDK), is there any difference for the performance if number
of CPU cores is small, ex, 10?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">The default scheduler is set for VT. How can a developer to create their own scheduler?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">The code can use ExecutorService or Thread builder to start VT. Is there any subtle difference?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">Beside current existing debug tool and skill , is there any other tool/way to debug the failure of VT?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">The VT is saved as stack chunk objects. Per the document, if VT reaches half the region size, it might throw StackOverflowError. Typically, what will cause the size of VT growing?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">When GC starts to work on chunk objects, how will it work? Any performance issue?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">If new feature is implemented by VT and required backporting to lower version of JDK, What are the recommendation and suggestion for sustaining engineer to help this work done
correctly and error free?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">Mount vs Unmount: what does JVM do? If this action fails, what will happen?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">notifyJvmMount vs notifyJvmUnmount, what does JVM react to this call?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">Is there any full stack trace from starting to the end when running VT?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">How to duplicate “VirtualThreadSubmitFailedEvent”? if failed, what does it look like?<o:p></o:p></span></li><li class="MsoNormal" style="mso-list:l1 level1 lfo2"><span style="font-size:11.0pt">When the deadlock happens, is it possible to see how many PTs are available?<o:p></o:p></span></li></ul>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Appreciate your help and time greatly.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">Weibing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
</div>
</body>
</html>