<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"><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<STYLE id=mysingle_style type=text/css>.search-word {
        BACKGROUND-COLOR: #ffee94
}
P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
TD {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
LI {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
BODY {
        FONT-SIZE: 10pt; FONT-FAMILY: Arial, arial
}
</STYLE>

<META content=IE=5 http-equiv=X-UA-Compatible>
<META content=IE=5 http-equiv=X-UA-Compatible>
<META name=GENERATOR content="MSHTML 11.00.9600.18698">
<STYLE>v\:* {
        BEHAVIOR: url(#default#VML)
}
o\:* {
        BEHAVIOR: url(#default#VML)
}
w\:* {
        BEHAVIOR: url(#default#VML)
}
.shape {
        BEHAVIOR: url(#default#VML)
}
</STYLE>

<STYLE>@font-face {
        font-family: Wingdings;
}
@font-face {
        font-family: Cambria Math;
}
@font-face {
        font-family: Calibri;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt
}
LI.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt
}
A:link {
        TEXT-DECORATION: underline; COLOR: #0563c1; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        TEXT-DECORATION: underline; COLOR: #0563c1; mso-style-priority: 99
}
A:visited {
        TEXT-DECORATION: underline; COLOR: #954f72; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        TEXT-DECORATION: underline; COLOR: #954f72; mso-style-priority: 99
}
P.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 24pt; mso-para-margin-left: 2.0gd; mso-style-priority: 34; mso-para-margin-top: 0in; mso-para-margin-right: 0in; mso-para-margin-bottom: .0001pt
}
LI.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 24pt; mso-para-margin-left: 2.0gd; mso-style-priority: 34; mso-para-margin-top: 0in; mso-para-margin-right: 0in; mso-para-margin-bottom: .0001pt
}
DIV.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 24pt; mso-para-margin-left: 2.0gd; mso-style-priority: 34; mso-para-margin-top: 0in; mso-para-margin-right: 0in; mso-para-margin-bottom: .0001pt
}
P.msonormal0 {
        FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-style-name: msonormal
}
LI.msonormal0 {
        FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-style-name: msonormal
}
DIV.msonormal0 {
        FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-style-name: msonormal
}
SPAN.EmailStyle19 {
        FONT-FAMILY: "Calibri",sans-serif; COLOR: windowtext; mso-style-type: personal
}
SPAN.EmailStyle20 {
        FONT-FAMILY: "Calibri",sans-serif; COLOR: windowtext; mso-style-type: personal
}
SPAN.EmailStyle21 {
        FONT-FAMILY: "Calibri",sans-serif; FONT-WEIGHT: normal; COLOR: #002060; FONT-STYLE: normal; mso-style-type: personal
}
SPAN.EmailStyle22 {
        FONT-FAMILY: "Calibri",sans-serif; COLOR: windowtext; mso-style-type: personal
}
SPAN.EmailStyle23 {
        FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d; mso-style-type: personal
}
SPAN.EmailStyle24 {
        FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d; mso-style-type: personal-reply
}
.MsoChpDefault {
        FONT-SIZE: 10pt; mso-style-type: export-only
}
DIV.WordSection1 {
        page: WordSection1
}
OL {
        MARGIN-BOTTOM: 0in
}
UL {
        MARGIN-BOTTOM: 0in
}
</STYLE>

<STYLE id=knox_style type=text/css>P {
        MARGIN-BOTTOM: 5px; FONT-SIZE: 10pt; FONT-FAMILY: Arial, arial; MARGIN-TOP: 5px
}
</STYLE>

<META content=IE=5 http-equiv=X-UA-Compatible></HEAD>
<BODY lang=EN-US style="TEXT-JUSTIFY-TRIM: punctuation" link=#0563c1 vLink=#954f72>
<P></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri">Hi Ray,</SPAN></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"></SPAN> </P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri">
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"'>This is Meenakshikumar from Samsung. I have reviewed the fix and it looks fine to handle <STRONG><SPAN style='FONT-FAMILY: "Calibri","sans-serif"; COLOR: black'>pAE->MultipleCoresToSingleQueueFlag = TRUE </SPAN></STRONG><SPAN style="COLOR: black">case while a new admin command is issued in completion path.</SPAN></SPAN></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"'><SPAN style="COLOR: black"></SPAN></SPAN> </P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"'><SPAN style="COLOR: black">For your comment, I am sharing my thoughts below :</SPAN></SPAN></P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"'><SPAN style="COLOR: black">
<P style='FONT-SIZE: 12pt; TEXT-DECORATION: ; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3'><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: rgb(31,73,125)"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">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></P>
<P style='FONT-SIZE: 12pt; TEXT-DECORATION: ; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3'><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: rgb(31,73,125)"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)">This will block NvmeStartIo when driver is processing a completion entry. </SPAN></P>
<P style='FONT-SIZE: 12pt; TEXT-DECORATION: ; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3'><SPAN style="FONT-SIZE: 11pt; COLOR: rgb(31,73,125)"></SPAN> </P>
<P style='FONT-SIZE: 12pt; TEXT-DECORATION: ; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3'><SPAN style="FONT-SIZE: 11pt; COLOR: #000000">==>  In OFA driver, Storport will acquire the StartIoLock before calling NVMeStartIo. We acquire StartIo lock only in the completion path in case if cores != queues, to synchronize multiple cores trying to access single queue.</SPAN></P>
<P style='FONT-SIZE: 12pt; TEXT-DECORATION: ; FONT-FAMILY: "Calibri",sans-serif; MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3'><SPAN style="FONT-SIZE: 11pt; COLOR: #000000">So in OFA driver, only if cores == queues, then both StartIO and DPCs will run concurrently.</SPAN></SPAN></SPAN>        </P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"; COLOR: black'>Apart from this, in <STRONG><SPAN style='FONT-FAMILY: "Calibri","sans-serif"'>pAE->MultipleCoresToSingleQueueFlag = FALSE case, </SPAN></STRONG>the intention to synchronize issuing admin command from StartIO & various completion paths is not handled in similar fashion in all cases.  </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"; COLOR: black'>For example, in SntiTranslateModeSenseResponse(), FormatNVMGetIdentify(), etc., lock is acquired. But in SntiTranslateTemperatureResponse(), SntiTranslateStartStopUnitResponse(), SntiTranslateWriteBufferResponse() etc., StartIO lock is not acquired. </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri","sans-serif"; COLOR: black'>There could be race condition b/w an IOCTL and Completion path trying to issue admin command. This should be addressed in the OFA driver, might be in a different patch.</SPAN></P></SPAN>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri"></SPAN> </P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri">Thanks,</SPAN></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri">Meenakshikumar</SPAN></P>
<P> </P>
<P>--------- <B>Original Message</B> ---------</P>
<P><B>Sender</B> : Robles, Raymond C <raymond.c.robles@intel.com></P>
<P><B>Date</B> : 2017-06-23 04:50 (GMT+5:30)</P>
<P><B>Title</B> : Re: [nvmewin] Compatibility issue with 1.5 version nvme driver</P>
<P> </P>
<DIV class=WordSection1>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Hi Justina,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; 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 style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #1f497d"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Need to remove code blocks in #if 0 <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #1f497d"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">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></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #1f497d"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">This will block NvmeStartIo when driver is processing a completion entry. <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level1 lfo3"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #1f497d"><SPAN style="mso-list: Ignore">·<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>        </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">A couple of options:<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 1in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level2 lfo3"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: #1f497d'><SPAN style="mso-list: Ignore">o<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>   </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">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></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 1in; TEXT-INDENT: -0.25in; mso-para-margin-left: 0gd; mso-list: l1 level2 lfo3"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: #1f497d'><SPAN style="mso-list: Ignore">o<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>   </SPAN></SPAN></SPAN><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">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></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; 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><A name=_MailEndCompose><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></A></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Thanks…<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Ray<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<DIV style="BORDER-TOP: #e1e1e1 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 3pt; PADDING-LEFT: 0in; BORDER-LEFT: medium none; PADDING-RIGHT: 0in">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 11pt">From:</SPAN></B><SPAN style="FONT-SIZE: 11pt"> nvmewin [mailto:nvmewin-bounces@lists.openfabrics.org] <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 <justina_lai@phison.com><BR><B>Cc:</B> nvmewin@lists.openfabrics.org<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><!--o:p--> <!--/o:p--></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Hi Justina, <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; 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 style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; 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 style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Thanks…<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d">Ray<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<DIV style="BORDER-TOP: #e1e1e1 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 3pt; PADDING-LEFT: 0in; BORDER-LEFT: medium none; PADDING-RIGHT: 0in">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 11pt">From:</SPAN></B><SPAN style="FONT-SIZE: 11pt"> 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><!--o:p--> <!--/o:p--></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Dear Raymond,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Yes, I have received your mail regarding unit test.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">May I know how to officially subscribe to the reflector email list?<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Thank you!<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Best Regards,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Justina Lai<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">#5707<!--o:p--><!--/o:p--></SPAN></P></DIV>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<DIV style="BORDER-TOP: #e1e1e1 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 3pt; PADDING-LEFT: 0in; BORDER-LEFT: medium none; PADDING-RIGHT: 0in">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW">From:</SPAN></B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW"> 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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW">Hi Justina,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW">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 style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW">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 style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW">Thanks…<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW">Ray<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; COLOR: #002060; mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<DIV style="BORDER-TOP: #e1e1e1 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 3pt; PADDING-LEFT: 0in; BORDER-LEFT: medium none; PADDING-RIGHT: 0in">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW">From:</SPAN></B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW"> 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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Hi,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Have you received my mail on 5/22?<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Thanks!<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Best Regards,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Justina Lai<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">#5707<!--o:p--><!--/o:p--></SPAN></P></DIV>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<DIV style="BORDER-TOP: #e1e1e1 1pt solid; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 3pt; PADDING-LEFT: 0in; BORDER-LEFT: medium none; PADDING-RIGHT: 0in">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW">From:</SPAN></B><SPAN style="FONT-SIZE: 11pt; mso-fareast-language: ZH-TW"> 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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Dear Sir/Madam,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">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 style="mso-fareast-language: ZH-TW">Please check below issue description.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">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 style="mso-fareast-language: ZH-TW"><IMG id=_x0000_i1025 border=0 src="cid:XYH693BIV0UV@namo.co.kr" width=538 height=302><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">After debugging on our side, we found the fail is caused by below flow:<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">---------------------------------------------------------------------------------------------------------------------------------------------------------------------<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">……….<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.25in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2"><SPAN style="mso-fareast-language: ZH-TW"><SPAN style="mso-list: Ignore">1.<SPAN style='FONT-SIZE: 7pt; FONT-FAMILY: "Times New Roman"; FONT-VARIANT: normal; FONT-STYLE: normal; LINE-HEIGHT: normal'>     </SPAN></SPAN></SPAN><SPAN style="mso-fareast-language: ZH-TW">SntiTranslateModeSense()<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.25in; mso-para-margin-left: 0gd"><SPAN style="mso-fareast-language: ZH-TW">……….<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">2.IoCompletionRoutine()<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">    if (pDpc != NULL) {<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        ASSERT(pAE->ntldrDump == FALSE);<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        if (<SPAN style="COLOR: red">pAE->MultipleCoresToSingleQueueFlag</SPAN>) {<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">            <SPAN style="COLOR: red">StorPortAcquireSpinLock(pAE, StartIoLock, NULL, &StartLockHandle); --------------------</SPAN></SPAN><SPAN style="FONT-FAMILY: Wingdings; COLOR: red; mso-fareast-language: ZH-TW">à</SPAN><SPAN style="COLOR: red; mso-fareast-language: ZH-TW"> execute lock<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        } else {<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">            StorPortAcquireSpinLock(pAE, DpcLock, pDpc, &DpcLockhandle);<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        }<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">    }<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">………<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">callStorportNotification = pSrbExtension->pNvmeCompletionRoutine(pAE, (PVOID)pSrbExtension)<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                            && (pSrbExtension->pSrb != NULL);<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">…….<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">3.SntiTranslateModeSenseResponse()<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="MARGIN-LEFT: 0.25in; mso-para-margin-left: 0gd"><SPAN style="mso-fareast-language: ZH-TW">…….<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">case MODE_SENSE_RETURN_ALL:<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">…….<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">if (supportsVwc == TRUE) {<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                          pSrbExt->pNvmeCompletionRoutine = SntiCompletionCallbackRoutine;<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                          /* Finally, make sure we issue the GET FEATURES command */<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                          SntiBuildGetFeaturesCmd(pSrbExt, VOLATILE_WRITE_CACHE);<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                          ioStarted = <SPAN style="COLOR: red">ProcessIo</SPAN>(pSrbExt->pNvmeDevExt,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                                   pSrbExt,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                                   NVME_QUEUE_TYPE_ADMIN,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                                                   <SPAN style="COLOR: red">TRUE</SPAN>);<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                            <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                            <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">4.ProcessIo()   <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        ……..<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        if (<SPAN style="COLOR: red">AcquireLock == TRUE</SPAN>) {<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">            <SPAN style="COLOR: red">StorPortAcquireSpinLock</SPAN>(pAdapterExtension,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                 StartIoLock,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                 NULL,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">                                 &hStartIoLock);  <SPAN style="COLOR: red">----------------------</SPAN></SPAN><SPAN style="FONT-FAMILY: Wingdings; COLOR: red; mso-fareast-language: ZH-TW">à</SPAN><SPAN style="COLOR: red; mso-fareast-language: ZH-TW"> double execute lock and cause (Assertion failure - code c0000420)</SPAN><SPAN style="COLOR: #1f497d; mso-fareast-language: ZH-TW"><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="COLOR: red; mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">        }        <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">---------------------------------------------------------------------------------------------------------------------------------------------------------------------<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">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 style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Any unclear point, please kindly let us know.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Thank you very much for the help!<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Best Regards,<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">Justina Lai<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW">#5707<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style="mso-fareast-language: ZH-TW"><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-FAMILY: "Times New Roman",serif; mso-fareast-language: ZH-TW'><BR></SPAN><SPAN style='FONT-FAMILY: "Arial",sans-serif; COLOR: gray; mso-fareast-language: ZH-TW'><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 style='FONT-FAMILY: "Times New Roman",serif; mso-fareast-language: ZH-TW'><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-FAMILY: "Times New Roman",serif; mso-fareast-language: ZH-TW'><BR></SPAN><SPAN style='FONT-FAMILY: "Arial",sans-serif; COLOR: gray; mso-fareast-language: ZH-TW'><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 style='FONT-FAMILY: "Times New Roman",serif; mso-fareast-language: ZH-TW'><!--o:p--><!--/o:p--></SPAN></P></DIV><PRE>_______________________________________________
nvmewin mailing list
nvmewin@lists.openfabrics.org
http://lists.openfabrics.org/mailman/listinfo/nvmewin
</PRE><table id=confidentialsignimg><tr><td>
<!--<p> <img border="0" src="http://www.samsung.net/pt_images/PCL/securityimage/MSI_20140519003732214.gif"/></p> -->
<p><img border="0" src="cid:XOK0LK7CT9SZ@namo.co.kr"/></p> 
</td></tr></table></BODY></HTML><img src='http://ext.samsung.net/mail/ext/v1/external/status/update?userid=sm.kumar&do=bWFpbElEPTIwMTcwNjIzMDczMTI4ZXBjbXM1cDY4MTZmNDk4MDA2ODllYzdlY2VlMGI0YjdlNzdmN2I3MSZyZWNpcGllbnRBZGRyZXNzPW52bWV3aW5AbGlzdHMub3BlbmZhYnJpY3Mub3Jn' border=0 width=0 height=0 style='display:none'>