<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:x="urn:schemas-microsoft-com:office:excel" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 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=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:PMingLiU;
        panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@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;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:24.0pt;
        margin-bottom:.0001pt;
        mso-para-margin-top:0cm;
        mso-para-margin-right:0cm;
        mso-para-margin-bottom:0cm;
        mso-para-margin-left:2.0gd;
        mso-para-margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle20
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#002060;
        font-weight:normal;
        font-style:normal;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle26
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        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:587883067;
        mso-list-type:hybrid;
        mso-list-template-ids:1560052872 1111398098 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:ideograph-traditional;
        mso-level-text:%2\3001;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:48.0pt;
        text-indent:-24.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:72.0pt;
        text-indent:-24.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:96.0pt;
        text-indent:-24.0pt;}
@list l0:level5
        {mso-level-number-format:ideograph-traditional;
        mso-level-text:%5\3001;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:120.0pt;
        text-indent:-24.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:144.0pt;
        text-indent:-24.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:168.0pt;
        text-indent:-24.0pt;}
@list l0:level8
        {mso-level-number-format:ideograph-traditional;
        mso-level-text:%8\3001;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:192.0pt;
        text-indent:-24.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:216.0pt;
        text-indent:-24.0pt;}
@list l1
        {mso-list-id:1931115338;
        mso-list-type:hybrid;
        mso-list-template-ids:1260187266 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New",serif;}
@list l1:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New",serif;}
@list l1:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l1:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l1:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New",serif;}
@list l1:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
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-TW" link="#0563C1" vlink="#954F72" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><a name="_MailEndCompose"><span lang="EN-US">Dear Raymond,<o:p></o:p></span></a></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Sorry for late reply.<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Option-1<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Please refer to attached nvmeSnti.c<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Modification: Judge if execute process() SpinLock by SntiTranslateModeSenseResponse().<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Option-2<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Please refer to attached nvmeStd.c<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Modification: Directly mark SpinLock/ ReleaseSpinLock in IoCompletionRoutine()</span><span lang="EN-US" style="color:#1F497D"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Thanks!<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<div>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Best Regards,<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">Justina Lai<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US">#5707<o:p></o:p></span></span></p>
</div>
<p class="MsoNormal"><span style="mso-bookmark:_MailEndCompose"><span lang="EN-US"><o:p> </o:p></span></span></p>
<span style="mso-bookmark:_MailEndCompose"></span>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> Robles, Raymond C [mailto:raymond.c.robles@intel.com]
<br>
<b>Sent:</b> Friday, June 23, 2017 7:20 AM<br>
<b>To:</b> Justina Lai <justina_lai@phison.com><br>
<b>Cc:</b> nvmewin@lists.openfabrics.org; Larry Li <larry_li@phison.com><br>
<b>Subject:</b> RE: Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Hi Justina,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Intel has reviewed your and tested your patch. Please see the following comments:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<ul style="margin-top:0cm" type="disc">
<li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level1 lfo2">
<span lang="EN-US" style="font-size:11.0pt">Need to remove code blocks in #if 0 <o:p>
</o:p></span></li><li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level1 lfo2">
<span lang="EN-US" style="font-size:11.0pt">When multiple cpu cores are mapped with single queue, the patch is removing startIoLock from processIO and startIoLock used only in IOCompletionDpcRoutine:<o:p></o:p></span></li><li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level1 lfo2">
<span lang="EN-US" style="font-size:11.0pt">This will block NvmeStartIo when driver is processing a completion entry.
<o:p></o:p></span></li><li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level1 lfo2">
<span lang="EN-US" style="font-size:11.0pt">A couple of options:<o:p></o:p></span>
<ul style="margin-top:0cm" type="circle">
<li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level2 lfo2">
<span lang="EN-US" style="font-size:11.0pt">Indicate in nvmeSnti.c when handling operations that require more than one command to the drive, and have that locking needs passed to ProcessIo appropriately. It does not seem plausible to isolate the changes to
 nvmeIO.c only.<o:p></o:p></span></li><li class="MsoListParagraph" style="color:#1F497D;margin-left:0cm;mso-para-margin-left:0gd;mso-list:l1 level2 lfo2">
<span lang="EN-US" style="font-size:11.0pt">You could also instead remove startIoLock from IoCompletionDpcRoutine while keeping startIoLock at processIo. This way we can avoid double lock and also we can make NvmeStartIo and IoCompletionDpcRoutine parallel.<o:p></o:p></span></li></ul>
</li></ul>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">The key takeaway is that StartIo and IoCompletionDpcRoutine must be able to run concurrently with no deadlocks. As you’ve coded the patch, a deadlock is possible. Please revise your
 patch to account for this scenario.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Thanks…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Ray<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><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"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> nvmewin [<a href="mailto:nvmewin-bounces@lists.openfabrics.org">mailto:nvmewin-bounces@lists.openfabrics.org</a>]
<b>On Behalf Of </b>Robles, Raymond C<br>
<b>Sent:</b> Thursday, June 22, 2017 3:55 PM<br>
<b>To:</b> Justina Lai <<a href="mailto:justina_lai@phison.com">justina_lai@phison.com</a>><br>
<b>Cc:</b> <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> Re: [nvmewin] Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Hi Justina,
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Please go the Open Fabrics Alliance website and subscribe to our reflector on this page: 
<a href="http://lists.openfabrics.org/mailman/listinfo/nvmewin">http://lists.openfabrics.org/mailman/listinfo/nvmewin</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">The main NVMe WG page can be found here:
<a href="https://www.openfabrics.org/index.php/working-groups.html">https://www.openfabrics.org/index.php/working-groups.html</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Thanks…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D">Ray<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#1F497D"><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"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> Justina Lai [<a href="mailto:justina_lai@phison.com">mailto:justina_lai@phison.com</a>]
<br>
<b>Sent:</b> Monday, June 19, 2017 11:45 PM<br>
<b>To:</b> Robles, Raymond C <<a href="mailto:raymond.c.robles@intel.com">raymond.c.robles@intel.com</a>><br>
<b>Cc:</b> <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> RE: Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Dear Raymond,<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">Yes, I have received your mail regarding unit test.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">We are now carrying on the test and hope to finish it within this week.<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">May I know how to officially subscribe to the reflector email list?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I saw my mail is already in the Non-digested Members of nvmewin. Should I set as digested mode?<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">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Justina Lai<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">#5707<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"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> Robles, Raymond C [<a href="mailto:raymond.c.robles@intel.com">mailto:raymond.c.robles@intel.com</a>]
<br>
<b>Sent:</b> Tuesday, June 20, 2017 5:37 AM<br>
<b>To:</b> Justina Lai <<a href="mailto:justina_lai@phison.com">justina_lai@phison.com</a>><br>
<b>Cc:</b> <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> RE: Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060">Hi Justina,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060">Yes, we did receive the email and have been emailing you. I notice that your emails keep getting bounced off the reflector list and I have to approve them. Could you please officially
 subscribe to the reflector email list so that your emails are not bounced (which require me to approve and forward).
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060">There was an additional request for you to run the normal unit tests required for all OFA patches. I’ll forward that email again after you officially subscribe the email list. Did
 you receive that email?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060">Thanks…<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060">Ray<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;color:#002060"><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"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> nvmewin [<a href="mailto:nvmewin-bounces@lists.openfabrics.org">mailto:nvmewin-bounces@lists.openfabrics.org</a>]
<b>On Behalf Of </b>Justina Lai<br>
<b>Sent:</b> Wednesday, May 24, 2017 10:18 PM<br>
<b>To:</b> <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> Re: [nvmewin] Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><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">Have you received my mail on 5/22?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks!<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">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Justina Lai<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">#5707<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"><b><span lang="EN-US" style="font-size:11.0pt">From:</span></b><span lang="EN-US" style="font-size:11.0pt"> Justina Lai
<br>
<b>Sent:</b> Monday, May 22, 2017 1:14 PM<br>
<b>To:</b> 'nvmewin@lists.openfabrics.org' <<a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a>><br>
<b>Cc:</b> Larry Li <<a href="mailto:larry_li@phison.com">larry_li@phison.com</a>><br>
<b>Subject:</b> Compatibility issue with 1.5 version nvme driver<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Dear Sir/Madam,<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">We are facing compatibility issue on our PS5007 NVMe device with recent 1.5 version nvme driver.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Please check below issue description.<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">Phison PS5007 supports 7 IO queues, and if we use PS5007 with OFA driver on the platform core number>7, ex: 8-core or 12-core PC, we will see PC hang up and cannot enter OS like below:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><img border="0" width="538" height="302" style="width:5.6041in;height:3.1458in" id="_x0000_i1025" src="cid:image001.jpg@01D2EF70.83F23570"><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">After debugging on our side, we found the fail is caused by below flow:<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>
<ol style="margin-top:0cm" start="1" type="1">
<li class="MsoNormal" style="margin-left:-18.0pt;mso-list:l0 level1 lfo4"><span lang="EN-US">SntiTranslateModeSense()<o:p></o:p></span></li></ol>
<p class="MsoListParagraph" style="margin-left:18.0pt;mso-para-margin-left:0gd"><span lang="EN-US">……….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">2.IoCompletionRoutine()<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">    if (pDpc != NULL) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        ASSERT(pAE->ntldrDump == FALSE);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        if (<span style="color:red">pAE->MultipleCoresToSingleQueueFlag</span>) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <span style="color:red">StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); --------------------</span></span><span lang="EN-US" style="font-family:Wingdings;color:red">à</span><span lang="EN-US" style="color:red">
 execute lock<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">        } else {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle);<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">………<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                            && (pSrbExtension->pSrb != NULL);<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">3.SntiTranslateModeSenseResponse()<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;mso-para-margin-left:0gd"><span lang="EN-US">…….<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">case MODE_SENSE_RETURN_ALL:<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">if (supportsVwc == TRUE) {<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">                                                          pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine;<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">                                                          /* Finally, make sure we issue the GET FEATURES command */<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                          SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE);<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">                                                          ioStarted =
<span style="color:red">ProcessIo</span>(pSrbExt->pNvmeDevExt,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                                   pSrbExt,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                                   NVME_QUEUE_TYPE_ADMIN,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                                                  
<span style="color:red">TRUE</span>);<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">4.ProcessIo()   <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">        if (<span style="color:red">AcquireLock == TRUE</span>) {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">            <span style="color:red">StorPortAcquireSpinLock</span>(pAdapterExtension,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                 StartIoLock,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                 NULL,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">                                 &hStartIoLock); 
<span style="color:red">----------------------</span></span><span lang="EN-US" style="font-family:Wingdings;color:red">à</span><span lang="EN-US" style="color:red"> double execute lock and cause (Assertion failure - code c0000420)</span><span lang="EN-US" style="color:#1F497D"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:red"><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">---------------------------------------------------------------------------------------------------------------------------------------------------------------------<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">Since many users are now using our PS5007 device with 8-core or 12-core PC, they are facing this issue right now. Could you please help to modify driver to solve this problem asap?<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">Any unclear point, please kindly let us know.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you very much for the help!<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">Best Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Justina Lai<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">#5707<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-family:"Times New Roman",serif"><br>
</span><span lang="EN-US" style="font-family:"Arial",sans-serif;color:gray"><br>
This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify
 the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated.</span><span lang="EN-US" style="font-family:"Times New Roman",serif"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"><span lang="EN-US" style="font-family:"Times New Roman",serif"><br>
</span><span lang="EN-US" style="font-family:"Arial",sans-serif;color:gray"><br>
This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify
 the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated.</span><span lang="EN-US" style="font-family:"Times New Roman",serif"><o:p></o:p></span></p>
</div>
<br>
<font face="Arial" color="Gray" size="3"><br>
This message and any attachments are confidential and may be legally privileged. Any unauthorized review, use or distribution by anyone other than the intended recipient is strictly prohibited. If you are not the intended recipient, please immediately notify
 the sender, completely delete the message and any attachments, and destroy all copies. Your cooperation will be highly appreciated.<br>
</font>
</body>
</html>