<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:D="DAV:" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 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]-->
<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
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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;}
span.EmailStyle17
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Can the HCA set it to more than requested?  Or is it only allowed
to set it to less?<o:p></o:p></span></p>

<p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><br>
Having the HCA set it to less introduces a different behavior than the rest of
the QP creation parameters, where the call fails if the value is too big (max
WR, max SGE, etc).  Requiring a call to query in order to find out whether the
requested inline data was granted seems a bit cumbersome.<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'>-Fab<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><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"'> Reuven Amitai
[mailto:reuven@mellanox.co.il] <br>
<b>Sent:</b> Wednesday, March 26, 2008 1:06 AM<br>
<b>To:</b> Fab Tillier; ofw@lists.openfabrics.org<br>
<b>Subject:</b> RE: [PATCH] ib_qp_create_t<o:p></o:p></span></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>Max inline is input from the user to the HCA but the HCA may set it
less than the user request (due to HCA limitations).</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>I don't think there is one optimal value for max_inline in
every situation that HW can set if the user want to use inline data.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>ib_qp_create_t is only input and the user should query the qp in
order to get the real value of max inline.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><span style='font-size:10.0pt;font-family:"Arial","sans-serif";
color:blue'>Reuven.</span><o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div class=MsoNormal align=center style='text-align:center'>

<hr size=2 width="100%" align=center>

</div>

<p class=MsoNormal style='margin-bottom:12.0pt'><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"'> Fab Tillier
[mailto:ftillier@windows.microsoft.com] <br>
<b>Sent:</b> Wednesday, March 26, 2008 9:32 AM<br>
<b>To:</b> Reuven Amitai; ofw@lists.openfabrics.org<br>
<b>Subject:</b> RE: [PATCH] ib_qp_create_t</span><o:p></o:p></p>

<p class=MsoNormal>Should max inline be an input or an output?  The
optimal size of inline data is something the HW knows, not the consumer. 
So perhaps it would make sense for the consumer to indicate that they want to
use inline data, and then the HCA driver to return the amount of inline data
available?<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<p class=MsoNormal>-Fab<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'>

<p class=MsoNormal><b>From:</b> ofw-bounces@lists.openfabrics.org
[mailto:ofw-bounces@lists.openfabrics.org] <b>On Behalf Of </b>Reuven Amitai<br>
<b>Sent:</b> Wednesday, March 26, 2008 12:30 AM<br>
<b>To:</b> ofw@lists.openfabrics.org<br>
<b>Subject:</b> [ofw] [PATCH] ib_qp_create_t<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div>

<p class=MsoNormal>Hi,<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>The patch add sq_max_inline member to ib_qp_create_t
structure in order to enable setting max_inline <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>(currently, there is no way to guarantee max inline size in
qp creation directly)<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>we'll need to increase all the relevant interfaces' versions
in the next release (because ib_qp_create_t is contained in IOCTL
structure(s))<o:p></o:p></p>

</div>

</div>

<div>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>Reuven<o:p></o:p></p>

</div>

</div>

<p class=MsoNormal><span style='color:blue'> <o:p></o:p></span></p>

<p class=MsoNormal>Index: hw/mthca/user/mlnx_ual_qp.c<o:p></o:p></p>

<p class=MsoNormal>===================================================================<o:p></o:p></p>

<p class=MsoNormal>--- hw/mthca/user/mlnx_ual_qp.c    
(revision 992)<o:p></o:p></p>

<p class=MsoNormal>+++ hw/mthca/user/mlnx_ual_qp.c    
(working copy)<o:p></o:p></p>

<p class=MsoNormal>@@ -120,7 +120,7 @@<o:p></o:p></p>

<p class=MsoNormal>     
attr.cap.max_recv_wr          =
p_create_attr->rq_depth;<o:p></o:p></p>

<p class=MsoNormal>     
attr.cap.max_send_sge         =
p_create_attr->sq_sge;<o:p></o:p></p>

<p class=MsoNormal>     
attr.cap.max_recv_sge         =
p_create_attr->rq_sge;<o:p></o:p></p>

<p class=MsoNormal>-    
attr.cap.max_inline_data      =
0;             
/* absent in IBAL */<o:p></o:p></p>

<p class=MsoNormal>+    
attr.cap.max_inline_data      =
p_create_attr->sq_max_inline;<o:p></o:p></p>

<p class=MsoNormal>     
attr.qp_type                                         
= p_create_attr->qp_type;<o:p></o:p></p>

<p class=MsoNormal>      attr.sq_sig_all  
                             
= p_create_attr->sq_signaled;<o:p></o:p></p>

<p class=MsoNormal>      <o:p></o:p></p>

<p class=MsoNormal>Index: inc/iba/ib_types.h<o:p></o:p></p>

<p class=MsoNormal>===================================================================<o:p></o:p></p>

<p class=MsoNormal>--- inc/iba/ib_types.h  (revision 992)<o:p></o:p></p>

<p class=MsoNormal>+++ inc/iba/ib_types.h  (working copy)<o:p></o:p></p>

<p class=MsoNormal>@@ -9755,6 +9755,7 @@<o:p></o:p></p>

<p class=MsoNormal> {<o:p></o:p></p>

<p class=MsoNormal>     
ib_qp_type_t                 
qp_type;<o:p></o:p></p>

<p class=MsoNormal> <o:p></o:p></p>

<p class=MsoNormal>+    
uint32_t                     
sq_max_inline;<o:p></o:p></p>

<p class=MsoNormal>     
uint32_t                     
sq_depth;<o:p></o:p></p>

<p class=MsoNormal>     
uint32_t                     
rq_depth;<o:p></o:p></p>

<p class=MsoNormal>     
uint32_t                     
sq_sge;<o:p></o:p></p>

<p class=MsoNormal>@@ -9772,6 +9773,10 @@<o:p></o:p></p>

<p class=MsoNormal> *    type<o:p></o:p></p>

<p class=MsoNormal> *         
Specifies the type of queue pair to create.<o:p></o:p></p>

<p class=MsoNormal> *<o:p></o:p></p>

<p class=MsoNormal>+*    sq_max_inline<o:p></o:p></p>

<p class=MsoNormal>+*         
Maximum payload that can be inlined directly in a WQE, eliminating<o:p></o:p></p>

<p class=MsoNormal>+*         
protection checks and additional DMA operations.<o:p></o:p></p>

<p class=MsoNormal>+*<o:p></o:p></p>

<p class=MsoNormal> *    sq_depth<o:p></o:p></p>

<p class=MsoNormal> *         
Indicates the requested maximum number of work requests that may be<o:p></o:p></p>

<p class=MsoNormal> *         
outstanding on the queue pair's send queue.  This value must be less<o:p></o:p></p>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal> <o:p></o:p></p>

</div>

</div>

</body>

</html>