<html xmlns:v="urn:schemas-microsoft-com:vml" 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=gb2312">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:PMingLiU;
        panose-1:2 1 6 1 0 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"MS PGothic";
        panose-1:2 11 6 0 7 2 5 8 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"\@MS PGothic";}
@font-face
        {font-family:"\@PMingLiU";
        panose-1:2 1 6 1 0 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:等线;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin:0cm;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:21.0pt;
        font-size:10.5pt;
        font-family:等线;}
span.EmailStyle21
        {mso-style-type:personal-reply;
        font-family:等线;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1757509972;
        mso-list-type:hybrid;
        mso-list-template-ids:584110118 235692878 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%2\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:42.0pt;
        text-indent:-21.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:63.0pt;
        text-indent:-21.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:84.0pt;
        text-indent:-21.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%5\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:105.0pt;
        text-indent:-21.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:126.0pt;
        text-indent:-21.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:147.0pt;
        text-indent:-21.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%8\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:168.0pt;
        text-indent:-21.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:189.0pt;
        text-indent:-21.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="#0563C1" vlink="#954F72" style="word-wrap:break-word;text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">>></span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">
</span><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">not unless you start polling those queues from some other thread<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">I don’t understand this point.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">As the rx callback is per queue data, it seems to me only thing is we should not polling this queue  while we are modify its callback. So only this queue should
 be in stopped state (maybe even this is not required? Because I see atomic operation is used (__atomic_store_n in rte_eth_add_rx_callback and __atomic_load_n in rte_eth_rx_burst)).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Anyway, polling other queues on some other thread should not affect, right? Or can you help to explain a bit more on this?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif">Thank you very much.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Br, Xiaoping<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:ZH-TW">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:ZH-TW">
 Burakov, Anatoly <anatoly.burakov@intel.com> <br>
<b>Sent:</b> 2023</span><span lang="ZH-TW" style="font-size:11.0pt;font-family:"PMingLiU",serif;mso-fareast-language:ZH-TW">年</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:ZH-TW">2</span><span lang="ZH-TW" style="font-size:11.0pt;font-family:"PMingLiU",serif;mso-fareast-language:ZH-TW">月</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:ZH-TW">20</span><span lang="ZH-TW" style="font-size:11.0pt;font-family:"PMingLiU",serif;mso-fareast-language:ZH-TW">日</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:ZH-TW">
 21:59<br>
<b>To:</b> Xiaoping Yan (NSB) <xiaoping.yan@nokia-sbell.com>; users@dpdk.org<br>
<b>Subject:</b> RE: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Well,
<i>technically</i>, no, you’re right, it wouldn’t – not unless you start polling those queues from some other thread. We can’t prevent that from happening, so we figured the best way would be to just disallow queue starts until we’re done configuring everything.
 So, yes, we could relax that restriction, it’s just a matter of specifying what’s allowed and what’s not vs. just doing a blanket “no” and keeping things simple.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Xiaoping Yan (NSB) <<a href="mailto:xiaoping.yan@nokia-sbell.com">xiaoping.yan@nokia-sbell.com</a>>
<br>
<b>Sent:</b> Monday, February 20, 2023 1:41 PM<br>
<b>To:</b> Burakov, Anatoly <<a href="mailto:anatoly.burakov@intel.com">anatoly.burakov@intel.com</a>>;
<a href="mailto:users@dpdk.org">users@dpdk.org</a><br>
<b>Subject:</b> RE: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-IE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you for the information.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I see from rte_eth_add_rx_callback, the callback is added to per queue data: rte_eth_devices[port_id].post_rx_burst_cbs[queue_id];<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">So it should not affect polling on other queues?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Br, Xiaoping<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">
 Burakov, Anatoly <<a href="mailto:anatoly.burakov@intel.com">anatoly.burakov@intel.com</a>>
<br>
<b>Sent:</b> 2023</span><span lang="JA" style="font-size:11.0pt;font-family:"MS PGothic",sans-serif;mso-fareast-language:JA">年</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">2</span><span lang="JA" style="font-size:11.0pt;font-family:"MS PGothic",sans-serif;mso-fareast-language:JA">月</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">20</span><span lang="JA" style="font-size:11.0pt;font-family:"MS PGothic",sans-serif;mso-fareast-language:JA">日</span><span lang="JA" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">
</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:JA">18:28<br>
<b>To:</b> Xiaoping Yan (NSB) <<a href="mailto:xiaoping.yan@nokia-sbell.com">xiaoping.yan@nokia-sbell.com</a>>;
<a href="mailto:users@dpdk.org">users@dpdk.org</a><br>
<b>Subject:</b> RE: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">It is mainly because we’re install callbacks, which is not thread-safe unless the PMD is stopped. Our PMD’s internal config structures
 are not thread-safe. You should only start these ports after you configure everything.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-IE" style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Xiaoping Yan (NSB) <<a href="mailto:xiaoping.yan@nokia-sbell.com">xiaoping.yan@nokia-sbell.com</a>>
<br>
<b>Sent:</b> Monday, February 20, 2023 6:12 AM<br>
<b>To:</b> <a href="mailto:users@dpdk.org">users@dpdk.org</a>; Burakov, Anatoly <<a href="mailto:anatoly.burakov@intel.com">anatoly.burakov@intel.com</a>><br>
<b>Subject:</b> RE: why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-IE"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hi Anatoly<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I see this multiple queue support is added by you.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Could you kindly help me to understand why rte_power_ethdev_pmgmt_queue_enable need other queues to be in stopped state?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">commit 5dff9a72b0efeab02a2b71e52c4871805b7e64cb<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Author: Anatoly Burakov <a href="mailto:anatoly.burakov@intel.com">
anatoly.burakov@intel.com</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Date:   Fri Jul 9 16:08:15 2021 +0000<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-indent:11.5pt"><span lang="EN-US">power: support callbacks for multiple Rx queues<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:11.5pt"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">Br, Xiaoping<o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" align="left" style="text-align:left"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Xiaoping Yan (NSB)
<br>
<b>Sent:</b> 2023</span><span style="font-size:11.0pt;font-family:宋体">年</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">2</span><span style="font-size:11.0pt;font-family:宋体">月</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">16</span><span style="font-size:11.0pt;font-family:宋体">日</span><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">
 21:00<br>
<b>To:</b> <a href="mailto:users@dpdk.org">users@dpdk.org</a><br>
<b>Subject:</b> why rte_power_ethdev_pmgmt_queue_enable need to check if other queues are stopped<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal" align="left" style="text-align:left"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Hi experts,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I</span>’<span lang="EN-US">m trying to use dpdk power pmd management APIs in my dpdk application.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">My application uses several ports, each have one rx queue, and it goes like this<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">    
</span></span></span><![endif]><span lang="EN-US">Init first port, setup rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the first port<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">    
</span></span></span><![endif]><span lang="EN-US">Init second port, setup rx queue, call rte_power_ethdev_pmgmt_queue_enable, and start the second port<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo2">
<![if !supportLists]><span lang="EN-US"><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">    
</span></span></span><![endif]>…<span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Now for the first port & queue, rte_power_ethdev_pmgmt_queue_enable return success, but for the second port & queue, it returns -16<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">From rte_power_ethdev_pmgmt_queue_enable code, I think it fails when checking if other queues are stopped as well.
<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#6A9955">    /* check if other queues are stopped as well */</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">    </span><span lang="EN-US" style="font-family:Consolas;color:#9CDCFE">ret</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"> =
</span><span lang="EN-US" style="font-family:Consolas;color:#DCDCAA">cfg_queues_stopped</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">(</span><span lang="EN-US" style="font-family:Consolas;color:#9CDCFE">lcore_cfg</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">);<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">    </span><span lang="EN-US" style="font-family:Consolas;color:#C586C0">if</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"> (</span><span lang="EN-US" style="font-family:Consolas;color:#9CDCFE">ret</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">
 != </span><span lang="EN-US" style="font-family:Consolas;color:#B5CEA8">1</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">) {<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#6A9955">        /* error means invalid queue, 0 means queue wasn't stopped */</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"><o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">        </span><span lang="EN-US" style="font-family:Consolas;color:#9CDCFE">ret</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"> =
</span><span lang="EN-US" style="font-family:Consolas;color:#9CDCFE">ret</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"> <
</span><span lang="EN-US" style="font-family:Consolas;color:#B5CEA8">0</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4"> ? -EINVAL : -EBUSY;<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">        </span><span lang="EN-US" style="font-family:Consolas;color:#C586C0">goto</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">
</span><span lang="EN-US" style="font-family:Consolas;color:#C8C8C8">end</span><span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">;<o:p></o:p></span></p>
<p class="MsoNormal" align="left" style="text-align:left;line-height:14.25pt;background:#1E1E1E">
<span lang="EN-US" style="font-family:Consolas;color:#D4D4D4">    }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">This seems quite strange for me, why other queues have to be in stopped state?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Can anyone help to explain?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Br, Xiaoping<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</div>
</div>
</body>
</html>