<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40" xmlns:ns0="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 12 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
<title>Samsung Enterprise Portal mySingle</title>
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";
        mso-believe-normal-left:yes;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        margin-top:3.75pt;
        margin-right:0in;
        margin-bottom:3.75pt;
        margin-left:0in;
        font-size:9.0pt;
        font-family:"Arial","sans-serif";}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:.5in;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle21
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle22
        {mso-style-type:personal;
        font-family:"Times New Roman","serif";
        color:#1F497D;
        font-weight:normal;
        font-style:normal;}
span.EmailStyle23
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle24
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><![if mso 9]><style>p.MsoNormal
        {margin-left:7.5pt;}
</style><![endif]><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="margin-left:7.5pt;margin-top:7.5pt;margin-right:7.5pt;margin-bottom:7.5pt">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Santosh,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The current driver supports Windows -7 64-bit only.  Windows-7 32-bit is not supported.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">32-bit Windows will be supported in the end of 2013 release.  There is no owner to work on Windows 32-bit support yet.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">It will be great if you can take the ownership to work on Windows-7 and Windows-8 32-bit support.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-Kwok<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> SANTOSH SINGH [mailto:santosh.s2@samsung.com]
<br>
<b>Sent:</b> Thursday, April 04, 2013 3:26 AM<br>
<b>To:</b> Kong, Kwok<br>
<b>Cc:</b> nvmewin@lists.openfabrics.org<br>
<b>Subject:</b> Re: RE: RE: RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hi Kwok,<o:p></o:p></p>
<p> <o:p></o:p></p>
<p>Its Windows-7 32 bit system and but I have n't seen the same issue on Windows 64-bit system.
<o:p></o:p></p>
<p> <o:p></o:p></p>
<p>Regards<o:p></o:p></p>
<p>Santosh<o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <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> : Kong, Kwok<<a href="mailto:Kwok.Kong@idt.com">Kwok.Kong@idt.com</a>><o:p></o:p></p>
<p><b>Date</b> : Apr 02, 2013 06:03 (GMT+09:00)<o:p></o:p></p>
<p><b>Title</b> : RE: RE: RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Santosh,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">What version of Windows are you running ? Is it 32-bit or 64-bit ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Officially, the current release of the driver supports Windows 7 – 64 bits only.   It does not work with 32-bit Windows.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-Kwok<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> SANTOSH SINGH [<a href="mailto:santosh.s2@samsung.com">mailto:santosh.s2@samsung.com</a>]
<br>
<b>Sent:</b> Monday, April 01, 2013 5:06 AM<br>
<b>To:</b> Kong, Kwok<br>
<b>Cc:</b> <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> Re: RE: RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Hi Kwok,<o:p></o:p></p>
<p> <o:p></o:p></p>
<p>I did not modify the driver code nor introdue any bug but  have seen this behaviour couple of times. Will capture the debug trace.<o:p></o:p></p>
<p> <o:p></o:p></p>
<p>Regards<o:p></o:p></p>
<p>Santosh<o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <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> : Kong, Kwok<<a href="mailto:Kwok.Kong@idt.com">Kwok.Kong@idt.com</a>><o:p></o:p></p>
<p><b>Date</b> : Mar 27, 2013 07:56 (GMT+09:00)<o:p></o:p></p>
<p><b>Title</b> : RE: RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Santosh,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Something is not right here.  The driver pre-allocates the PRP list to store up to 32 entries per list during initialization time. PRP2 must point to a list
 with the following offset:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">0x000<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">0x100<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">0x200<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">…<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">…<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">0xE00<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-right:7.5pt;text-indent:-.25in"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-</span><span style="font-size:7.0pt;color:#1F497D">         
</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">0xF00<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">PRP2 cannot point to an offset 0xFF0 as in your example.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">You can confirm this in your driver by adding the following debugging message in the file nvmeinit.c and function NVMeInitFreeQ.<o:p></o:p></span></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:blue">It's around Line# 720 to add the printout...</span><o:p></o:p></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"> <o:p></o:p></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:blue">        /* Save the address of current list for calculating next list */<br>
        CurPRPList = (ULONG_PTR)pCmdInfo->pPRPList;<br>
        pCmdInfo->prpListPhyAddr = StorPortGetPhysicalAddress(pAE,<br>
                                      NULL,<br>
                                      pCmdInfo->pPRPList,<br>
                                      &prpListSz);<br>
        </span><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:red">StorPortDebugPrint(INFO, "NVMeInitFreeQ : Entry#%d List starts 0x%llX\n",
<br>
            Entry, pCmdInfo->pPRPList);</span><span style="color:red"><o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Here is a sample output:<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#0 List starts 0xFFFFFA800D69E100<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#1 List starts 0xFFFFFA800D69E200<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#2 List starts 0xFFFFFA800D69E300<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#3 List starts 0xFFFFFA800D69E400<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#4 List starts 0xFFFFFA800D69E500<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#5 List starts 0xFFFFFA800D69E600<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#6 List starts 0xFFFFFA800D69E700<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#7 List starts 0xFFFFFA800D69E800<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#8 List starts 0xFFFFFA800D69E900<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#9 List starts 0xFFFFFA800D69EA00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#10 List starts 0xFFFFFA800D69EB00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#11 List starts 0xFFFFFA800D69EC00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#12 List starts 0xFFFFFA800D69ED00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#13 List starts 0xFFFFFA800D69EE00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#14 List starts 0xFFFFFA800D69EF00<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#15 List starts 0xFFFFFA800D69F000<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#16 List starts 0xFFFFFA800D69F100<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#17 List starts 0xFFFFFA800D6A0100<o:p></o:p></span></p>
<p class="MsoNormal" style="mso-margin-top-alt:5.0pt;margin-right:7.5pt;margin-bottom:5.0pt;margin-left:7.5pt">
<span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#18 List starts 0xFFFFFA800D6A0200<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">STORMINI: NVMeInitFreeQ : Entry#19 List starts 0xFFFFFA800D6A0300<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">…<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Did you modify the driver and create a bug in your driver ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">We have not seen this  problem in our testing environment.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-Kwok<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> SANTOSH SINGH [<a href="mailto:santosh.s2@samsung.com">mailto:santosh.s2@samsung.com</a>]
<br>
<b>Sent:</b> Tuesday, March 26, 2013 3:32 AM<br>
<b>To:</b> Robles, Raymond C<br>
<b>Cc:</b> Kong, Kwok; <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a>; Onufryk, Peter; Wilcox, Matthew R;
<a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a><br>
<b>Subject:</b> Re: RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Hi Ray,</span><o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Attached is the summary of the screen shot.</span><o:p></o:p></p>
<p><img border="0" width="882" height="515" id="_x0000_i1025" src="cid:image001.png@01CE3108.1FE00EC0"><o:p></o:p></p>
<p> <o:p></o:p></p>
<p>We can discuss in the next  WG call.<o:p></o:p></p>
<p> <o:p></o:p></p>
<p>Regards<o:p></o:p></p>
<p>Santosh<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">raymond.c.robles@intel.com</a>><o:p></o:p></p>
<p><b>Date</b> : Mar 22, 2013 05:17 (GMT+09:00)<o:p></o:p></p>
<p><b>Title</b> : RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D">Hi Santosh,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D">I am one of the original authors of the OFA Windows NVMe driver (sorry, I’m late to this thread). What do you believe is the problem?  The Windows OFA driver constructs PRP lists per the NVMe
 spec. We’ve run for several days with numerous data integrity testing tools (without error).<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D">Do you believe that the PRP list is incorrectly constructed?  Based on the screen shot you sent out, the second PRP entry in the submission queue entry points to a PRP list… it should not contain
 the 2<sup>nd</sup> PRP entry. This is per the NVMe spec.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D">Ray<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Kong, Kwok [<a href="mailto:Kwok.Kong@idt.com">mailto:Kwok.Kong@idt.com</a>]
<br>
<b>Sent:</b> Thursday, March 21, 2013 11:14 AM<br>
<b>To:</b> <a href="mailto:santosh.s2@samsung.com">santosh.s2@samsung.com</a><br>
<b>Cc:</b> <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a>; Onufryk, Peter; Wilcox, Matthew R<br>
<b>Subject:</b> RE: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Santosh,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">The specification is very clear on how the PRP list should be constructed.    If you see a problem with any driver, then it is a driver problem and not  a specification
 problem.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Please send your question to  <a href="mailto:nvmewin@lists.openfabrics.org">nvmewin@lists.openfabrics.org</a> if you believe there is a driver bug.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">What is the LBA size for your testing ?  512B or 4KB ?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">-Kwok<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> SANTOSH SINGH [<a href="mailto:santosh.s2@samsung.com">mailto:santosh.s2@samsung.com</a>]
<br>
<b>Sent:</b> Thursday, March 21, 2013 3:55 AM<br>
<b>To:</b> Kong, Kwok<br>
<b>Cc:</b> <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a>; Onufryk, Peter; 'Wilcox, Matthew R'<br>
<b>Subject:</b> Re: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p>Sorry some how the attachement is missing. Resending.<o:p></o:p></p>
<p> <o:p></o:p></p>
<p><img border="0" width="1600" height="860" id="_x0000_i1026" src="cid:image002.png@01CE3108.1FE00EC0"><o:p></o:p></p>
<p> <o:p></o:p></p>
<p>Regards<o:p></o:p></p>
<p>Santosh<o:p></o:p></p>
<p> <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> : SANTOSH SINGH<<a href="mailto:santosh.s2@samsung.com">santosh.s2@samsung.com</a>> Senior Chief Engineer/SRI-Bangalore-SSD Solutions/Samsung Electronics<o:p></o:p></p>
<p><b>Date</b> : Mar 21, 2013 19:45 (GMT+09:00)<o:p></o:p></p>
<p><b>Title</b> : RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:0in;margin-right:0in;margin-bottom:12.0pt;margin-left:0in">
<span style="font-size:9.0pt;font-family:"Arial","sans-serif"">Hi Kwok,<br>
<br>
I got the scenario reproduced again, while issuing the FS format command.<br>
Following are the debug details.<br>
<br>
Page size 4k<br>
Data Transfer size was 16 LBA<br>
PRP1 Entry 0x3e8fd060<br>
PRP2 Entry list   0xbe166ff0<br>
Total no. of PRP entries  17<br>
<br>
The 16 PRP entries should fit in single page. But the PRP2 offset<br>
0xbe166ff0(PRP2) is not correct and it has run off the page(from 0xbe166ff0<br>
to 0xbe167000) which is the next page in continuity. Attached is the<br>
snapshot of the debug window for the detailed analysis.<br>
<br>
<br>
<br>
<br>
<br>
<br>
Regards<br>
Santosh<br>
<br>
<br>
-----Original Message-----<br>
From: Kong, Kwok [<a href="mailto:Kwok.Kong@idt.com">mailto:Kwok.Kong@idt.com</a>]
<br>
Sent: Thursday, March 21, 2013 1:22 AM<br>
To: Wilcox, Matthew R; <a href="mailto:santosh.s2@samsung.com">santosh.s2@samsung.com</a><br>
Cc: Onufryk, Peter; <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a><br>
Subject: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
Santosh,<br>
<br>
Your verification on the OFA driver that it uses PRP list format as in<br>
figure 2 is incorrect.<br>
<br>
The OFA driver does neither figure 1, nor figure 2.<br>
<br>
By default, the max request size that the mini-port supports is 128KB.  If<br>
the request size is bigger than 128KB, the port driver sends multiple 128KB<br>
requests to the OFA mini-port driver.<br>
<br>
The OFA mini-port driver pre-allocates the PRP list buffers during<br>
initialization.  The PRP entries (a max of 32 entries for 128KB request<br>
size) never run off the end of a page as shown in figure 1 or figure 2.  All<br>
PRP entries are guaranteed to fit within a single Memory Page.<br>
<br>
Thanks<br>
<br>
-Kwok<br>
<br>
<br>
<br>
-----Original Message-----<br>
From: Wilcox, Matthew R [<a href="mailto:matthew.r.wilcox@intel.com">mailto:matthew.r.wilcox@intel.com</a>]
<br>
Sent: Wednesday, March 20, 2013 8:26 AM<br>
To: <a href="mailto:santosh.s2@samsung.com">santosh.s2@samsung.com</a>; Kong, Kwok<br>
Cc: Onufryk, Peter; <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a><br>
Subject: RE: RE: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
The Linux driver does neither figure 1, nor figure 2.<br>
<br>
If the number of PRP entries requires more than one page, it starts at the<br>
beginning of a page.  If it requires less than a page, it may start in the<br>
middle of a page, but will never run off the end of a page as shown in<br>
figure 2.<br>
<br>
I have not reviewed the OFA driver to see what it does.<br>
<br>
________________________________<br>
From: SANTOSH SINGH [santosh.s2@samsung.com]<br>
Sent: March 19, 2013 8:01 PM<br>
To: Kong, Kwok; Wilcox, Matthew R<br>
Cc: Onufryk, Peter; <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a><br>
Subject: Re: RE: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
<br>
Hi Kwok, Matthew,<br>
<br>
<br>
<br>
I verified the OFA driver too and that prepares the PRP List entry as in<br>
fig-2.<br>
<br>
Any reason  why both the drivers(Linux and OFA) prepares the PRP2 list  like<br>
fig-2. Will it change in the later version of drivers as fig-1.<br>
<br>
<br>
<br>
Regards<br>
<br>
Santosh<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
------- Original Message -------<br>
<br>
Sender : Kong, Kwok<br>
<br>
Date : Mar 20, 2013 01:01 (GMT+09:00)<br>
<br>
Title : RE: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
<br>
I believe the specification is very clear to indicate that figure 1 is<br>
correct.<br>
<br>
"The last entry within a memory page, as indicated by the memory page size<br>
in the CC.MPS field, shall be a PRP List pointer if there is more than a<br>
single memory page of data to be transferred.".<br>
<br>
<br>
Thanks<br>
<br>
-Kwok<br>
<br>
<br>
<br>
From: Onufryk, Peter [<a href="mailto:Peter.Onufryk@idt.com">mailto:Peter.Onufryk@idt.com</a>]<br>
Sent: Tuesday, March 19, 2013 7:22 AM<br>
To: Santosh Singh; <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a><br>
Subject: RE: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
Santosh,<br>
<br>
John and I discussed this and we believe that Figure 1 is correct and that<br>
the best way to clarify this is by adding a figure showing it to the spec.<br>
This will be the first item on the agenda in this week's calls.<br>
<br>
Regards,<br>
Peter<br>
<br>
<br>
From: Santosh Singh [<a href="mailto:santosh.s2@samsung.com">mailto:santosh.s2@samsung.com</a>]<br>
Sent: Tuesday, March 19, 2013 5:49 AM<br>
To: <a href="mailto:technical@nvmexpress.org">technical@nvmexpress.org</a><ns0:technical_x0040_nvmexpress.org><br>
Subject: NVMe 1.1 : Clarification on PRP2 Entry list<br>
<br>
Hi All,<br>
<br>
<br>
I  got the query on  PRP2 , when it is  entry list and not memory page<br>
aligned   from a design  engineer .<br>
<br>
The below paragraph is from section 4.3 'Physical Region Page Entry and<br>
List' of Spec 1.1.<br>
<br>
[<a href="cid:Z5JE7EUABGFC@namo.co.kr">cid:Z5JE7EUABGFC@namo.co.kr</a>]<br>
<br>
PRP entry 2, when pointing to a list may also have a non-zero offset within<br>
a memory page, means that is not memory page aligned.<br>
The last entry within a memory page shall be a list pointer. There are<br>
following two understandings for this:<br>
<br>
1000<br>
<br>
h<br>
<br>
1<br>
<br>
FFFh<br>
<br>
PRP entry<br>
<br>
2<br>
<br>
pointing to a list<br>
<br>
Entry<br>
<br>
1<br>
<br>
Entry<br>
<br>
2<br>
<br>
Entry<br>
<br>
3<br>
<br>
Entry<br>
<br>
4<br>
<br>
Address of PRP list<br>
<br>
5000<br>
<br>
h<br>
<br>
5<br>
<br>
FFFh<br>
<br>
Entry<br>
<br>
5<br>
<br>
Entry<br>
<br>
6<br>
<br>
Entry<br>
<br>
7<br>
<br>
Entry<br>
<br>
8<br>
<br>
1000<br>
<br>
h<br>
<br>
1<br>
<br>
FFFh<br>
<br>
PRP entry<br>
<br>
2<br>
<br>
pointing to a list<br>
<br>
Entry<br>
<br>
1<br>
<br>
Entry<br>
<br>
2<br>
<br>
Entry<br>
<br>
3<br>
<br>
Entry<br>
<br>
4<br>
<br>
2<br>
<br>
FFFh<br>
<br>
Entry<br>
<br>
5<br>
<br>
Entry<br>
<br>
6<br>
<br>
Entry<br>
<br>
7<br>
<br>
Entry<br>
<br>
8<br>
<br>
Entry<br>
<br>
511<br>
<br>
Entry<br>
<br>
510<br>
<br>
Address of PRP list<br>
<br>
5000<br>
<br>
h<br>
<br>
5<br>
<br>
FFFh<br>
<br>
Entry<br>
<br>
512<br>
<br>
Entry<br>
<br>
513<br>
<br>
Entry<br>
<br>
514<br>
<br>
Fig:1<br>
<br>
Fig:2<br>
<br>
Page boundary<br>
<br>
<br>
So just want to verify with others that as per the  line in section 4.3  'A<br>
physical region page list (PRP List) is a set of PRP entries in a single<br>
page of contiguous memory'<br>
fig:2 is  the correct understanding.<br>
<br>
<br>
Thanks & Regards<br>
Santosh<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
[<a href="cid:LK7CT9SZN3WZ@namo.co.kr">cid:LK7CT9SZN3WZ@namo.co.kr</a>]<br>
<br>
<br>
<br>
<br>
<br>
</ns0:technical_x0040_nvmexpress.org><o:p></o:p></span></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellpadding="0" id="confidentialsignimg">
<tbody>
<tr>
<td style="padding:.75pt .75pt .75pt .75pt">
<p><img border="0" width="520" height="144" id="_x0000_i1027" src="cid:image003.gif@01CE3108.1FE00EC0"><o:p></o:p></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><img border="0" id="_x0000_i1028" src="http://ext.samsung.net/mailcheck/SeenTimeChecker?do=ba69d47c78c3acc08d47d8c18e24da0151171515984b9d550ad7d0699a0799098adfa564d3c39ac365b186a42a35dd3e259756a7cc35ba77326bbdfb2ea96a2fcf878f9a26ce15a0"><o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><img border="0" id="_x0000_i1029" src="http://ext.samsung.net/mailcheck/SeenTimeChecker?do=ba69d47c78c3acc0b6872ba05ecac647cb20e510c9bc8be10ad7d0699a0799098adfa564d3c39ac365b186a42a35dd3e259756a7cc35ba77326bbdfb2ea96a2fcf878f9a26ce15a0"><o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><img border="0" id="_x0000_i1030" src="http://ext.samsung.net/mailcheck/SeenTimeChecker?do=5f64b9fd8cb08cc2f66a4f6be00ce242c653ccac87eca576932338572397a37994dfdc2a6b2aa2df7b37768dabeed03adb9fdddda33e82cbe4a391424e62fcf6cf878f9a26ce15a0"><o:p></o:p></p>
<p> <o:p></o:p></p>
<p> <o:p></o:p></p>
<p class="MsoNormal" style="margin:0in;margin-bottom:.0001pt"><img border="0" id="_x0000_i1031" src="http://ext.samsung.net/mailcheck/SeenTimeChecker?do=5f64b9fd8cb08cc2fdd126d80ad984713eb55cd9d5cabd6d932338572397a37994dfdc2a6b2aa2df7b37768dabeed03adb9fdddda33e82cbe4a391424e62fcf6cf878f9a26ce15a0"><o:p></o:p></p>
</div>
</body>
</html>