<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:dt = "uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" 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.18427">
<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;
}
@font-face {
        font-family: Tahoma;
}
@page WordSection1 {size: 8.5in 11.0in; margin: 1.0in 1.0in 1.0in 1.0in; }
P.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt
}
LI.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt
}
A:link {
        TEXT-DECORATION: underline; COLOR: blue; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        TEXT-DECORATION: underline; COLOR: blue; mso-style-priority: 99
}
A:visited {
        TEXT-DECORATION: underline; COLOR: purple; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        TEXT-DECORATION: underline; COLOR: purple; mso-style-priority: 99
}
P {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN-LEFT: 0in; MARGIN-RIGHT: 0in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto; mso-style-priority: 99
}
P.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt 0.5in; mso-style-priority: 34
}
LI.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt 0.5in; mso-style-priority: 34
}
DIV.MsoListParagraph {
        FONT-SIZE: 12pt; FONT-FAMILY: "Times New Roman",serif; MARGIN: 0in 0in 0pt 0.5in; mso-style-priority: 34
}
SPAN.EmailStyle19 {
        FONT-FAMILY: "Calibri",sans-serif; FONT-WEIGHT: normal; COLOR: #002060; FONT-STYLE: normal; mso-style-type: personal
}
SPAN.EmailStyle20 {
        FONT-FAMILY: "Calibri",sans-serif; FONT-WEIGHT: normal; COLOR: #1f497d; FONT-STYLE: normal; mso-style-type: personal
}
SPAN.EmailStyle21 {
        FONT-FAMILY: "Calibri",sans-serif; FONT-WEIGHT: normal; COLOR: #002060; FONT-STYLE: normal; 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 link=blue vLink=purple>
<P></P>
<P>Hi Ray,</P>
<P> </P>
<P>Samsung votes for Option 1.</P>
<P> </P>
<P>Thanks,</P>
<P>Suman</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> : 2016-08-27 04:49 (GMT+5:30)</P>
<P><B>Title</B> : Re: [nvmewin] review comments for patch from Google</P>
<P> </P>
<DIV class=WordSection1>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks Tom. I’ll mark your vote. <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Sorry for the confusion on the NS management code. I was looking at an older branch. You are correct, all the NS Management stuff is there. But the StartIo perf params stuff is still missing. <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks…<BR>Ray<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--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; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Thomas Freeman [mailto:thomas.freeman@hgst.com] <BR><B>Sent:</B> Friday, August 26, 2016 2:49 PM<BR><B>To:</B> Robles, Raymond C <raymond.c.robles@intel.com>; nvmewin <nvmewin@lists.openfabrics.org><BR><B>Subject:</B> RE: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></SPAN></P></DIV></DIV>
<P class=MsoNormal><!--o:p--> <!--/o:p--></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>I vote for the 1<SUP>st</SUP> option also.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>As for the current patch from Google, what is the missing namespace management code? I compared the trunk to the trunk+patch and I don’t see any changes to NS management code. <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>I would also like to see Google’s answer to your 2<SUP>nd</SUP> questions re: StorPortGetSTartioPerfParams.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<DIV>
<P class=MsoNormal><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Tom Freeman<!--o:p--><!--/o:p--></SPAN></B></P>
<P class=MsoNormal><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Software Engineer, Device Manager and Driver Development<!--o:p--><!--/o:p--></SPAN></B></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Western Digital Corporation<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>e.  <A href="mailto:Thomas.freeman@hgst.com">Thomas.freeman@hgst.com</A><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>o.  +1-507-322-2311<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><IMG id=Picture_x0020_5 style="HEIGHT: 0.489in; WIDTH: 1.562in" border=0 src="cid:ZPZQ39MRZQS8@namo.co.kr" width=150 height=47><!--o:p--><!--/o:p--></SPAN></P></DIV>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; 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; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> 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> Friday, August 26, 2016 1:27 PM<BR><B>To:</B> nvmewin <<A href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></SPAN></P></DIV></DIV>
<P class=MsoNormal><!--o:p--> <!--/o:p--></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; BACKGROUND: yellow; COLOR: #002060; mso-highlight: yellow'>All reviewers,</SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>The concurrent channels patch from Google has been out for review for just over a month. I extended the time to review to provide companies ample time to review/test. <!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Intel has still found the same issues as before with the latest zipped source code sent from Google…<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo2"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060"><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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Not on the latest branch (missing namespace management code), and<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l2 level1 lfo2"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060"><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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Missing call to StorPortGetStartIoPerfParams() to get the STARTIO_PERFORMANCE_PARAMETERS in order to identify the current MSI-x vector number (in order to get the correct SQ on which to submit the command).<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>In lieu of this, I would like to propose two options concerning our mid-year release:<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo4"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><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='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Move forward with the mid-year release and hold off on resolving the concurrent channels patch from Google until after the release, or<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo4"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><SPAN style="mso-list: Ignore">2.<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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Resolve the current concurrent channels patch first, and then release (this will delay our targeted end of August release timeframe).<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Please cast your vote for which option you choose. Note that Intel is in favor of option 1.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060"><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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>HGST: <B>TBD</B><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060"><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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Intel: <B>Option 1</B><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoListParagraph style="TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo6"><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060"><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; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Samsung: <B>TBD</B><!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>If there are other suggestions for the mid-year release, please feel free to suggest.<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><!--o:p--> <!--/o:p--></SPAN></P>
<P class=MsoNormal><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [<A href="mailto:iuliur@google.com">mailto:iuliur@google.com</A>] <BR><B>Sent:</B> Friday, July 08, 2016 12:52 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> Foster, Carolyn D <<A href="mailto:carolyn.d.foster@intel.com">carolyn.d.foster@intel.com</A>>; nvmewin <<A href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</A>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></SPAN></P>
<P class=MsoNormal><!--o:p--> <!--/o:p--></P>
<DIV>
<P class=MsoNormal>Password is nvme<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal><!--o:p--> <!--/o:p--></P>
<DIV>
<P class=MsoNormal>On Fri, Jul 8, 2016 at 12:25 PM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>As Carolyn suggested below, you will have to encrypt (password protect) your zip file. Many company firewalls (i.e. Intel) will block .c/.h files. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Could you please rezip your source code and add encryption/password protection, and resend? Don’t forget to send the password as well.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [mailto:<A href="mailto:iuliur@google.com" target=_blank>iuliur@google.com</A>] <BR><B>Sent:</B> Friday, July 08, 2016 12:23 PM<BR><B>To:</B> Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>><BR><B>Cc:</B> Foster, Carolyn D <<A href="mailto:carolyn.d.foster@intel.com" target=_blank>carolyn.d.foster@intel.com</A>>; nvmewin <<A href="mailto:nvmewin@lists.openfabrics.org" target=_blank>nvmewin@lists.openfabrics.org</A>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">I did, but some of your e-mail servers rejected it, even after changing the extension.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Fri, Jul 8, 2016 at 12:20 PM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Did you ever send out your zipped source code?</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Foster, Carolyn D <BR><B>Sent:</B> Wednesday, June 29, 2016 4:45 PM<BR><B>To:</B> Iuliu Rus <<A href="mailto:iuliur@google.com" target=_blank>iuliur@google.com</A>>; Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>><BR><B>Cc:</B> nvmewin <<A href="mailto:nvmewin@lists.openfabrics.org" target=_blank>nvmewin@lists.openfabrics.org</A>><BR><B>Subject:</B> RE: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Can you please zip your local source files and send it out to the group?  You might want to encrypt it and provide us with the password.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Thanks!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Carolyn</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><A name=m_5056999964509500280_m_5682067863342812><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> nvmewin [</SPAN><A href="mailto:nvmewin-bounces@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>mailto:nvmewin-bounces@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <B>On Behalf Of </B>Iuliu Rus<BR><B>Sent:</B> Wednesday, June 29, 2016 4:20 PM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">I think i don't understand how patching works. Did you sync up your local copy before looking at it? I did not remove those lines, they are still present in my local copy.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Wed, Jun 29, 2016 at 3:44 PM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks for the updated patch. After reviewing again, I have some additional questions…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: #002060">         </SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>In ProcessIo, the dpc lock is obtained later in the code than originally implemented. Why move the lock acquire down?</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: #002060">         </SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>In ProcessIo, it appears that you do not call StorPortGetStartIoPerfParams() to obtain the completing MSI-x message number. Getting this MSI-x message number ensures that you know which interrupt vector will be used to complete this request… and therefore you know on which SQ/CQ pair to post the SQE. Was this left out intentionally? See sample code below:</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.25in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>if (((DeviceExtension->perfData.Flags & STOR_PERF_INTERRUPT_MESSAGE_RANGES) == STOR_PERF_INTERRUPT_MESSAGE_RANGES) &&</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>(SrbExtension->pSrb != NULL)) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>Perf.Size = sizeof(STARTIO_PERFORMANCE_PARAMETERS);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>StorPortGetStartIoPerfParams((PVOID)DeviceExtension,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 2.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>(PSCSI_REQUEST_BLOCK)pSrbExtension->pSrb,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 2.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>&Perf);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>StorStatus = NVMeMapMsiToQueue(DeviceExtension,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 3in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>Perf.MessageNumber,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 3in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>&SubQueue,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 3in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>&CplQueue);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Symbol; COLOR: #002060">·</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: #002060">         </SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>When setting up concurrent channels, I do not see the Storport Perf Opts changes from Suman’s patch (Samsung). The Perf Opts changes replace the old learning mode and drive the source core interrupt steering in the driver. Without it, the concurrent channels changes will not be optimized correctly. See reference to Perf Opts setup code (directly from OFA source trunk in NVMeInitialize) below:</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>if (pAE->ntldrDump == FALSE) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        /* Enumerate granted MSI/MSI-X messages if there is any */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        if (NVMeEnumMsiMessages(pAE) == FALSE) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>            NVMeFreeBuffers(pAE);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>            return (FALSE);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           perfQueryData.Version = STOR_PERF_VERSION;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           perfQueryData.Size = sizeof(PERF_CONFIGURATION_DATA);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           Status = StorPortInitializePerfOpts(pAE, TRUE, &perfQueryData);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           ASSERT(STOR_STATUS_SUCCESS == Status);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           if (STOR_STATUS_SUCCESS == Status) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                perfData.Version = STOR_PERF_VERSION;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                perfData.Size = sizeof(PERF_CONFIGURATION_DATA);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                /* Allow optimization of storport DPCs */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                if (perfQueryData.Flags & STOR_PERF_DPC_REDIRECTION) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                     perfData.Flags = STOR_PERF_DPC_REDIRECTION;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                     /* Allow optimization of Interrupt Redirection and Group Affinity */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                     if ((perfQueryData.Flags & (STOR_PERF_INTERRUPT_MESSAGE_RANGES | STOR_PERF_ADV_CONFIG_LOCALITY)) ==</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           (STOR_PERF_INTERRUPT_MESSAGE_RANGES | STOR_PERF_ADV_CONFIG_LOCALITY)){</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           perfData.Flags |= STOR_PERF_INTERRUPT_MESSAGE_RANGES;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           perfData.Flags |= STOR_PERF_ADV_CONFIG_LOCALITY;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           perfData.FirstRedirectiON-MESSAGENumber = 0;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           perfData.LastRedirectiON-MESSAGENumber = (pRMT->NumMsiMsgGranted - 1);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                           perfData.MessageTargets = pAE->pArrGrpAff;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                     }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                Status = StorPortInitializePerfOpts(pAE, FALSE, &perfData);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                ASSERT(STOR_STATUS_SUCCESS == Status);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                if (STOR_STATUS_SUCCESS == Status){</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                     pAE->IsMsiMappingComplete = TRUE;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>                }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>           }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        /* Call StorPortPassiveInitialization to enable passive init */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        StorPortEnablePassiveInitialization(pAE, NVMePassiveInitialize);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>        return (TRUE);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'>    } else {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 1in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Courier New"; COLOR: black'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [mailto:</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Wednesday, June 29, 2016 10:56 AM<BR><B>To:</B> Thomas Freeman <</SPAN><A href="mailto:thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>thomas.freeman@hgst.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Sorry about Thomas. I resolved that conflict but i think i sent you the patch pre-resolve by mistake. Here is the correct patch. I also triggered the RecoveryDpc from the debugger, to make sure i have coverage on that. I don't think the normal tests cover it.<!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Wed, Jun 29, 2016 at 7:25 AM, Thomas Freeman <<A href="mailto:thomas.freeman@hgst.com" target=_blank>thomas.freeman@hgst.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>It looks like the patch file has an unresolved conflict:</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+<<<<<<< .mine</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+                             ReleaseDpcSpinLocks(pAE, dpcLocks);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+             }  /* reset the controller */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+             if (pAE->NumDpc > MAX_DPC) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+                             StorPortFreePool(pHwDeviceExtension, dpcLocks);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+             }</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+||||||| .r137</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+        StorPortReleaseSpinLock(pAE, &startLockhandle);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+    }  /* reset the controller */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+=======</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>                               pAE->DeviceRemovedDuringIO = TRUE;</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>#if (NTDDI_VERSION > NTDDI_WIN7)</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>                               if (pAE->Timerhandle != NULL) {</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>@@ -2634,6 +2680,7 @@</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>         NVMeFreeBuffers(pAE);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>                               StorPortResume(pAE);</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>     }  /* reset the controller */</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>+>>>>>>> .r139</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Tom Freeman</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Software Engineer, Device Manager and Driver Development</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Western Digital Corporation</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>e.  </SPAN><A href="mailto:Thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>Thomas.freeman@hgst.com</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>o.  </SPAN><A href="tel:%2B1-507-322-2311" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>+1-507-322-2311</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><IMG id=_x0000_i1026 style="HEIGHT: 0.489in; WIDTH: 1.562in" border=0 alt=cid:image001.jpg@01D1D1F7.245A73D0 src="cid:Y2AH3IN37TXX@namo.co.kr" width=150 height=47></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> nvmewin [mailto:</SPAN><A href="mailto:nvmewin-bounces@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin-bounces@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <B>On Behalf Of </B>Iuliu Rus<BR><B>Sent:</B> Monday, June 27, 2016 11:12 AM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B>Cc:</B> nvmewin <<A href="mailto:nvmewin@lists.openfabrics.org" target=_blank>nvmewin@lists.openfabrics.org</A>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Done.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Mon, Jun 27, 2016 at 8:52 AM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV style="MARGIN: 7.5pt">
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; BACKGROUND: yellow; COLOR: #002060'>Hi Suman,</SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you for checking on your patches. I was unaware that your latest patch for IOCTL Surprise Removal was not applied correctly. I’ve just applied that patch again and the trunk should now be at revision 138. Could you please double check to ensure you patch is applied properly and let me know? Thank you!!!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; BACKGROUND: yellow; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Sorry about the thrash… but I think we’ve finally got the trunk up to date to the latest (once confirmed by Suman from Samsung). Once confirmed, please rebase you trunk and add your modifications to that latest revision (138). Thank you!!!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks…<BR>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> SUMAN PRAKASH B [mailto:</SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Monday, June 27, 2016 1:12 AM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; Iuliu Rus <</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Hi Ray,</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Samsung submitted 3 patches. Revision 134 is first patch, Revision 136 and 137 is second patch.</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>We submitted third patch for Handling device Surprise removal in IOCTL path which was approved by HGST and Intel on 1st June. Please find attached the mail thread for reference.</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>The third patch is not yet checked-in to trunk.</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Thanks,</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Suman</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P>------- <B>Original Message</B> -------<!--o:p--><!--/o:p--></P>
<P><B>Sender</B> : Robles, Raymond C<<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>><!--o:p--><!--/o:p--></P>
<P><B>Date</B> : Jun 27, 2016 12:19 (GMT+05:30)<!--o:p--><!--/o:p--></P>
<P><B>Title</B> : Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>I apologize for the delay in responding. I was performing a manual diff of the last several merges to complete the investigation. Here is what I found. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>The latest revision on the OFA source trunk is actually 137 (refer to my screenshot below). I’ve manually gone back and made sure that all the patches submitted are in this latest revision. I found no errors or issues. The latest trunk is up to date with all of the patches. If you were trying to apply your patch yourself, you cannot. Only myself (OFA co-chair) and Carolyn Foster (OFA source maintainer) have write permissions to the repo.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Each patch listed below is applied to trunk. The only think you need to insure is that your latest concurrent channels modifications are based off the 137 revision. If you have any questions, please me know. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Here is the screenshot of all the patches I’ve checked…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'><IMG id=_x0000_i1027 style="HEIGHT: 4.677in; WIDTH: 11.27in" border=0 alt=cid:image002.png@01D1D1F7.245A73D0 src="cid:5HHVPZ28TIC2@namo.co.kr" width=1082 height=449></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> nvmewin [mailto:</SPAN><A href="mailto:nvmewin-bounces@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin-bounces@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <B>On Behalf Of </B>Robles, Raymond C<BR><B>Sent:</B> Friday, June 17, 2016 12:08 PM<BR><B>To:</B> Iuliu Rus <</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks Iuliu. I’m currently investigating the issue. Will let everyone know when the trunk is updated. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>mailto:iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Friday, June 17, 2016 10:29 AM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> Thomas Freeman <</SPAN><A href="mailto:thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>thomas.freeman@hgst.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">I don't see any changes when i try to update. My svn says : completed at revision 137.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Thu, Jun 16, 2016 at 2:42 PM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu- Please rebase your patch with the latest OFA trunk source. If you do not see any updates during your rebase, please let me know and I’ll investigate. Thanks!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [mailto:</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Thursday, June 16, 2016 2:15 PM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> Thomas Freeman <</SPAN><A href="mailto:thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>thomas.freeman@hgst.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Let me know if i have to sync to the latest and re-do the patch.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Thu, Jun 16, 2016 at 2:10 PM, Iuliu Rus <<A href="mailto:iuliur@google.com" target=_blank>iuliur@google.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">We already have a pool of locks - the dpc locks, which is what i'm using in my latest patch. You cannot create spinlocks directly in a storport driver, the only option is to use either the StartIoLock, the dpc lock, the interrupt lock or one of the MSI locks.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Thu, Jun 16, 2016 at 2:04 PM, Robles, Raymond C <<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hello,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Here are my thoughts… </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>In short, I agree with Thomas’s assessment. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Concurrent channels allows Storport to call StartIo concurrently… and with no locks. Therefore the locking of critical sections is now the responsibility of the miniport.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Any solution proposed should protect critical resources (cmd id pool, cmd entries, doorbells) with a lock that is granular enough for our driver, but not at the visibility of the OS or Storport. Acquiring the StartIo lock to protect resources in our driver only is too broad of a lock. My suggestion would be to create a pool of locks (one for every SQ/CQ pair) that is maintained within our driver. Again, crashdump mode is a non-issue because it is single threaded.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Thomas Freeman [mailto:</SPAN><A href="mailto:thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>thomas.freeman@hgst.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Thursday, June 16, 2016 1:51 PM<BR><B>To:</B> Iuliu Rus <</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> RE: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Here my view, I hope someone else can chime in to verify or correct what I'm saying</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>The purpose of the concurrent channels change is to prevent Storport from acquiring the StartIo lock before calling Startio. This allows multiple simultaneous calls to StartIo. If you require ProcessIo get the StartIo lock, you are replicating what Storport used to - it defeats the point of concurrent channels. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Here is my suggestion for what needs to be changed</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>1. There is no need for StartIo Locks - remove the requests to acquire them</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>2. Acquire the Dpc locks in the following situations</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>   -ProcessIo, before calling GetCmdEntry - if there is queue sharing</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>   -ProcessIo, before calling IssueCmd - always</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>   -IoCompletionRoutine, before calling NVMeCompleteCmd - if there is queue sharing</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>   -recoveryDpcRoutine - get all of the Dpc locks</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Here is my reasoning</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>-GetCmdEntry and NVMeCompleteCmd both access the FreeQList. With queue sharing, these could run simultaneously and have a collision when they update the list. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>-IssueCmd. With queue sharing, different cpu's could attempt to put entries on the queue simultaneously. But, to make RecoveryDpcRoutine work, this must be protected by the dpcLock whether or not there is queue sharing. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>I think this will address the deadlock problem I reported also.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Regards,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Tom Freeman</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Software Engineer, Device Manager and Driver Development</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Western Digital Corporation</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>e.  </SPAN><A href="mailto:Thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>Thomas.freeman@hgst.com</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>o.  </SPAN><A href="tel:%2B1-507-322-2311" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>+1-507-322-2311</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><IMG id=_x0000_i1028 style="HEIGHT: 0.489in; WIDTH: 1.562in" border=0 alt=cid:image001.jpg@01D1D1F7.245A73D0 src="cid:Y2AH3IN37TXX@namo.co.kr" width=150 height=47></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>mailto:iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Thursday, June 16, 2016 2:42 PM<BR><B>To:</B> Thomas Freeman <</SPAN><A href="mailto:thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>thomas.freeman@hgst.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Cc:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Here's my revised patch for concurrent channels. The synchronization rules are now as follows:<!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">1. Init is single threaded so it doesn't matter if acquirelock is true or false<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">2. Anything called from the DPC has to call ProcessIo with false, since the dpc spinlock is already acquired.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">3. Anything called from StartIo has to call ProcessIo with true, since now the startio is not automatically acquired.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Thomas, i think the bug that you found is because the ProcessIo was incorrectly called with TRUE instead of FALSE.<!--o:p--><!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Let me know what are your thoughts on this.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Thu, Jun 16, 2016 at 10:41 AM, Iuliu Rus <<A href="mailto:iuliur@google.com" target=_blank>iuliur@google.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Guys, am i OK continuing with the patch on the current code base or do you want me to wait until you pull in some more changes?<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Wed, Jun 15, 2016 at 8:37 AM, Thomas Freeman <<A href="mailto:thomas.freeman@hgst.com" target=_blank>thomas.freeman@hgst.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Ray,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>It appears that the latest patch file from Iuliu is applied to revision 137. I don’t see Suman’s changes in that revision.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>As an example, the use of StorPortRequestTimer is not in nvmeStat.c.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>I thought there were some newer revisions than 137, but 137 is the latest I’m able to download.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>137 is also the revision that appears when I go to </SPAN><A href="https://svn.openfabrics.org/svnrepo/nvmewin/" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>https://svn.openfabrics.org/svnrepo/nvmewin/</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>SVN is giving me some troubles, so I can’t tell for sure if this is my environment or a server issue.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Tom Freeman</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Software Engineer, Device Manager and Driver Development</SPAN></B><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>Western Digital Corporation</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>e.  </SPAN><A href="mailto:Thomas.freeman@hgst.com" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>Thomas.freeman@hgst.com</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif; COLOR: #1f497d'>o.  </SPAN><A href="tel:%2B1-507-322-2311" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Arial",sans-serif'>+1-507-322-2311</SPAN></A><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'><IMG id=_x0000_i1029 style="HEIGHT: 0.489in; WIDTH: 1.562in" border=0 alt=cid:image003.jpg@01D1D1F7.245A73D0 src="cid:ZPZQ39MRZQS8@namo.co.kr" width=150 height=47></SPAN><!--o:p--><!--/o:p--></P></DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> nvmewin [mailto:</SPAN><A href="mailto:nvmewin-bounces@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin-bounces@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <B>On Behalf Of </B>Robles, Raymond C<BR><B>Sent:</B> Friday, June 10, 2016 12:23 PM<BR><B>To:</B> Iuliu Rus <</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; </SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Cc:</B> nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>></SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google<!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>If you send out the updated patch with the protection in place for both list entries and doorbells, I can run it on an Intel NVMe SSD (P3700) and see if there is any performance impact (up or down).</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus [</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>mailto:iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Friday, June 10, 2016 10:17 AM<BR><B>To:</B> </SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Cc:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; Judy Brock <</SPAN><A href="mailto:judy.brock@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>judy.brock@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; nvmewin <</SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>><BR><B>Subject:</B> Re: RE: review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">we are running this in a virtual machine, and we do see a perf difference with concurrent channels. We did not observe any performance drop with synchronized access to the list entry.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Fri, Jun 10, 2016 at 7:15 AM, SUMAN PRAKASH B <<A href="mailto:suman.p@samsung.com" target=_blank>suman.p@samsung.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>As you have the implementation in place, can you let us know if there is any performance improvement when STOR_PERF_CONCURRENT_CHANNELS is set in case of #core and #queues not matching.</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Also, if there is any drop in performance if the list entry and doorbell is protected after setting STOR_PERF_CONCURRENT_CHANNELS.</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Perhaps a bit off topic:</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Even in case when #cores and #queues are same and when STOR_PERF_CONCURRENT_CHANNELS is set, we did not observe any performance gain. Maybe we are hitting the max performance from device even without setting STOR_PERF_CONCURRENT_CHANNELS. Can you please let us know your observation?</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Thanks,</SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Suman</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P>------- <B>Original Message</B> -------<!--o:p--><!--/o:p--></P>
<P><B>Sender</B> : Robles, Raymond C<<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>><!--o:p--><!--/o:p--></P>
<P><B>Date</B> : Jun 10, 2016 08:30 (GMT+05:30)<!--o:p--><!--/o:p--></P>
<P><B>Title</B> : RE: review comments for patch from Google<!--o:p--><!--/o:p--></P></DIV></DIV>
<DIV>
<DIV>
<P> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Judy, </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thanks for the additional info. I agree with the assessment. My statement was directed at the general direction of the solution… and the fact that I think option 1 is not as robust as option 2.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Judy Brock [mailto:</SPAN><A href="mailto:judy.brock@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>judy.brock@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>] <BR><B>Sent:</B> Thursday, June 09, 2016 5:14 PM<BR><B>To:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; Iuliu Rus <</SPAN><A href="mailto:iuliur@google.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>iuliur@google.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; </SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Cc:</B> </SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Subject:</B> RE: review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Hi Ray et al,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>[Suman wrote] >> Protect the listentry and doorbell before access/update</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>                             >>Do not set STOR_PERF_CONCURRENT_CHANNELS when number of cores and queues are not same.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="MARGIN-LEFT: 0.5in; TEXT-INDENT: 0.5in; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray wrote] >>In the case Suman points out, concurrent channels should still be enabled even if the number of cores and queues do not match. This is especially true for large core count systems (>128 logical cpu cores) but devices may only support 32 queues or less</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>I think Suman was saying, we have two options: </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>1.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: #1f497d">       </SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>either don’t enable it at all if # cores != #queues or </SPAN><!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>2.</SPAN><SPAN style="FONT-SIZE: 7pt; COLOR: #1f497d">       </SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>protect both the list entries and doorbell writes before any accesses/updates if #cores != #queues.  </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>So we will need to check to see if we need to use locks or not in the performance path based on whether #cores and # queues DO match or not if we want to enable concurrent channels no matter what.   It’s probably better than option 1) above if this is a configuration that can come up frequently.</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Thanks,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'>Judy</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #1f497d'> </SPAN><!--o:p--><!--/o:p--></P>
<DIV>
<DIV style="BORDER-TOP: #b5c4df 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 style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'> nvmewin [</SPAN><A href="mailto:nvmewin-bounces@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'>mailto:nvmewin-bounces@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'>] <B>On Behalf Of </B>Robles, Raymond C<BR><B>Sent:</B> Thursday, June 09, 2016 2:32 PM<BR><B>To:</B> Iuliu Rus; </SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'><BR><B>Cc:</B> </SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma",sans-serif'><BR><B>Subject:</B> Re: [nvmewin] review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Hi Iuliu/Suman,</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>I’m of the opinion that any solution provided should be as robust as possible. In the case Suman points out, concurrent channels should still be enabled even if the number of cores and queues do not match. This is especially true for large core count systems (>128 logical cpu cores) but devices may only support 32 queues or less. </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you…</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Ray</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>From:</SPAN></B><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> Iuliu Rus </SPAN><A href="mailto:[mailto:iuliur@google.com]" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>[mailto:iuliur@google.com]</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'> <BR><B>Sent:</B> Thursday, June 09, 2016 2:09 PM<BR><B>To:</B> </SPAN><A href="mailto:suman.p@samsung.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>suman.p@samsung.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Cc:</B> Robles, Raymond C <</SPAN><A href="mailto:raymond.c.robles@intel.com" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>raymond.c.robles@intel.com</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>>; </SPAN><A href="mailto:nvmewin@lists.openfabrics.org" target=_blank><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>nvmewin@lists.openfabrics.org</SPAN></A><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'><BR><B>Subject:</B> Re: review comments for patch from Google</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">Which one do you prefer? Our google driver has the synchronization in place already for a different reason. Or, I can follow your second suggestion.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P>
<DIV>
<DIV>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">On Thu, Jun 9, 2016 at 7:39 AM, SUMAN PRAKASH B <<A href="mailto:suman.p@samsung.com" target=_blank>suman.p@samsung.com</A>> wrote:<!--o:p--><!--/o:p--></P></DIV></DIV>
<BLOCKQUOTE style="BORDER-TOP: medium none; BORDER-RIGHT: medium none; BORDER-BOTTOM: medium none; PADDING-BOTTOM: 0in; PADDING-TOP: 0in; PADDING-LEFT: 6pt; MARGIN: 5pt 0in 5pt 4.8pt; BORDER-LEFT: #cccccc 1pt solid; PADDING-RIGHT: 0in">
<DIV>
<DIV>
<DIV>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Hi Iuliu,</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Please find my review comments below:</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>1. If the number of Cores and Queues supported by device are not same, then setting STOR_PERF_CONCURRENT_CHANNELS will corrupt the submission queue. For example, if device has 4 queues and connected to target PC which has 8 logical processors, and if STOR_PERF_CONCURRENT_CHANNELS is set, all the 8 logical processors will get startIo calls concurrently. As per OFA driver NUMA design, the IO Queue 1 will be shared by core 0 and core 4. There is possibility that core 0 and core 4 will get startio() calls concurrently and will access/update the listenty and queue 1 doorbell register at same time, which will lead to listentry and doorbell register corruption. <BR>This problem can be address by following ways:<BR>a. Protect the listentry and doorbell before access/update.<BR>b. Do not set STOR_PERF_CONCURRENT_CHANNELS when number of cores and queues are not same.</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>2. We can use pRMT->NumActiveCores which is updated in NVMeEnumNumaCores() instead of using KeQueryActiveProcessorCountEx/KeQueryActiveProcessorCount.</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Please let us know your opinion.</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif'>Thanks,<BR>Suman</SPAN><!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<P>------- <B>Original Message</B> -------<!--o:p--><!--/o:p--></P>
<P><B>Sender</B> : Robles, Raymond C<<A href="mailto:raymond.c.robles@intel.com" target=_blank>raymond.c.robles@intel.com</A>><!--o:p--><!--/o:p--></P>
<P><B>Date</B> : Jun 09, 2016 03:56 (GMT+05:30)<!--o:p--><!--/o:p--></P>
<P><B>Title</B> : Re: [nvmewin] Happy New Year... and status update<!--o:p--><!--/o:p--></P>
<P> <!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'>Thank you Iuliu!</SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; BACKGROUND: yellow; COLOR: #002060'>Reviewing companies, please try to target the review completion for 2 weeks from today (6/22/16).</SPAN><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style='FONT-SIZE: 11pt; FONT-FAMILY: "Calibri",sans-serif; COLOR: #002060'> </SPAN><!--o:p--><!--/o:p--></P></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV></DIV></DIV></BLOCKQUOTE></DIV></DIV></DIV></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">...<BR><BR>[Message clipped]  <!--o:p--><!--/o:p--></P></BLOCKQUOTE></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P></DIV></DIV></DIV></BLOCKQUOTE></DIV>
<P class=MsoNormal style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"> <!--o:p--><!--/o:p--></P></DIV></DIV></DIV></BLOCKQUOTE></DIV>
<P class=MsoNormal><!--o:p--> <!--/o:p--></P></DIV>
<DIV>
<P class=MsoNormal>Western Digital Corporation (and its subsidiaries) E-mail Confidentiality Notice & Disclaimer:<!--o:p--><!--/o:p--></P>
<DIV>
<P class=MsoNormal>This e-mail and any files transmitted with it may contain confidential or legally privileged information of WDC and/or its affiliates, and are intended solely for the use of the individual or entity to which they are addressed. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted to be taken in reliance on it, is prohibited. If you have received this e-mail in error, please notify the sender immediately and delete the e-mail in its entirety from your system.<!--o:p--><!--/o:p--></P></DIV></DIV></DIV><PRE>_______________________________________________
nvmewin mailing list
nvmewin@lists.openfabrics.org
http://lists.openfabrics.org/mailman/listinfo/nvmewin
</PRE><table id=bannersignimg><tr><td><div id="cafe-note-contents" style="margin:10px;font-family:Arial;font-size:10pt;"><p> </p></div></td></tr></table><table id=confidentialsignimg><tr><td><div id="cafe-note-contents" style="margin:10px;font-family:Arial;font-size:10pt;"><p><img unselectable="on" data-cui-image="true" style="display: inline-block; border: 0px solid; width: 520px; height: 144px;" src="cid:cafe_image_0@s-core.co.kr"><br></p></div></td></tr></table></BODY></HTML><img src='http://v70ext.samsung.net/mail/ext/v1/external/status/update?userid=suman.p&do=bWFpbElEPTIwMTYwODI5MDgxNDAxZXBjbXM1cDFkOTgxNjBjNzUzMTQ5OWU0Y2ZiMmZmNmI5NGY2NmI0ZCZyZWNpcGllbnRBZGRyZXNzPW52bWV3aW5AbGlzdHMub3BlbmZhYnJpY3Mub3Jn' border=0 width=0 height=0 style='display:none'>