<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:ex12m = 
"http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:ex12t = 
"http://schemas.microsoft.com/exchange/services/2006/types" xmlns:mrels = 
"http://schemas.openxmlformats.org/package/2006/relationships" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml" xmlns:mver = 
"http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:wf = 
"http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:udcxf = 
"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:xsi = 
"http://www.w3.org/2001/XMLSchema-instance" xmlns:sps = 
"http://schemas.microsoft.com/sharepoint/soap/" xmlns:sp = 
"http://schemas.microsoft.com/sharepoint/" xmlns:ec = 
"http://www.w3.org/2001/04/xmlenc#" xmlns:sub = 
"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:xsd = 
"http://www.w3.org/2001/XMLSchema" xmlns:udc = 
"http://schemas.microsoft.com/data/udc" xmlns:dsp = 
"http://schemas.microsoft.com/sharepoint/dsp" xmlns:ds = 
"http://www.w3.org/2000/09/xmldsig#" xmlns:dir = 
"http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ois = 
"http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:x2 = 
"http://schemas.microsoft.com/office/excel/2003/xml" XMLNS:D = "DAV:" xmlns:q = 
"http://schemas.xmlsoap.org/soap/envelope/" xmlns:html = 
"http://www.w3.org/TR/REC-html40" xmlns:oa = 
"urn:schemas-microsoft-com:office:activation" xmlns:c = 
"urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:ss = 
"urn:schemas-microsoft-com:office:spreadsheet" xmlns:b = 
"urn:schemas-microsoft-com:office:publisher" xmlns:z = "#RowsetSchema" xmlns:rs 
= "urn:schemas-microsoft-com:rowset" xmlns:s = 
"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt = 
"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:a = 
"urn:schemas-microsoft-com:office:access" xmlns:p = 
"urn:schemas-microsoft-com:office:powerpoint" xmlns:x = 
"urn:schemas-microsoft-com:office:excel" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:v = 
"urn:schemas-microsoft-com:vml"><HEAD><!--[if !mso]>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<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]-->
<META content="MSHTML 6.00.2900.3268" name=GENERATOR></HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><SPAN 
class=952331608-26032008><FONT face=Arial color=#0000ff size=2>see comment 
below.</FONT></SPAN></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><SPAN 
class=952331608-26032008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN> </DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
</DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left><FONT face=Tahoma 
size=2><B>From:</B> Fab Tillier [mailto:ftillier@windows.microsoft.com] 
<BR><B>Sent:</B> Wednesday, March 26, 2008 10:08 AM<BR><B>To:</B> Reuven Amitai; 
ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [PATCH] 
ib_qp_create_t<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;>Can the HCA set it to more than requested?  Or is it 
only allowed to set it to less?<SPAN class=952331608-26032008><FONT face=Arial 
color=#0000ff size=2> </FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><SPAN class=952331608-26032008><FONT face=Arial 
color=#0000ff size=2>[Reuven]</FONT> <FONT face=Arial color=#0000ff 
size=2>I was wrong.T</FONT></SPAN></SPAN><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><SPAN class=952331608-26032008><FONT face=Arial 
color=#0000ff size=2>he call will fails if the value exceed the HCA limit ( just 
like max WR\SGE ).</FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><SPAN 
class=952331608-26032008>           <FONT 
face=Arial color=#0000ff size=2>  The HCA may set it more than the 
requested value.</FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><SPAN 
class=952331608-26032008>           <FONT 
face=Arial color=#0000ff size=2>  In order to know the real value one 
should query qp.</FONT></SPAN></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><SPAN class=952331608-26032008><FONT face=Arial 
color=#0000ff size=2></FONT></SPAN></SPAN><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><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: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><o:p> </o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;>-Fab<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;><o:p> </o:p></SPAN></P>
<DIV>
<DIV 
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " 
Tahoma?,?sans-serif??>From:</SPAN></B><SPAN 
style="FONT-SIZE: 10pt; 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: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>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: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>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: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>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: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>Reuven.</SPAN><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p> </o:p></P></DIV>
<DIV class=MsoNormal style="TEXT-ALIGN: center" align=center>
<HR align=center width="100%" SIZE=2>
</DIV>
<P class=MsoNormal style="MARGIN-BOTTOM: 12pt"><B><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: " 
Tahoma?,?sans-serif??>From:</SPAN></B><SPAN 
style="FONT-SIZE: 10pt; 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-RIGHT: medium none; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0in; PADDING-BOTTOM: 0in; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<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>