<!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>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<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-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><SPAN class=735585307-26032008><FONT face=Arial color=#0000ff size=2>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).</FONT></SPAN></DIV>
<DIV><SPAN class=735585307-26032008><FONT face=Arial color=#0000ff size=2>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.</FONT></SPAN></DIV>
<DIV><SPAN class=735585307-26032008><FONT face=Arial color=#0000ff 
size=2>ib_qp_create_t is only input and the user should query the qp in order to 
get the real value of max inline.</FONT></SPAN></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT><FONT face=Arial color=#0000ff 
size=2></FONT> </DIV>
<DIV><SPAN class=735585307-26032008><FONT face=Arial color=#0000ff 
size=2>Reuven.</FONT></SPAN></DIV>
<DIV><BR></DIV>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> 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<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: " color:#1F497D? 
Calibri?,?sans-serif?;>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></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??> 
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></SPAN></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?;>Hi,</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?;>The patch add sq_max_inline member to ib_qp_create_t 
structure in order to enable setting 
max_inline </SPAN><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>(currently, there is no way to guarantee max inline size in 
qp creation directly)</SPAN><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>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))</SPAN><o:p></o:p></P></DIV></DIV>
<DIV>
<DIV>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;> <o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:blue? 
Arial?,?sans-serif?;>Reuven<o:p></o:p></SPAN></P></DIV></DIV>
<P class=MsoNormal><SPAN style="COLOR: blue"> <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>Index: hw/mthca/user/mlnx_ual_qp.c<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; 
Courier>===================================================================<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>--- hw/mthca/user/mlnx_ual_qp.c     (revision 
992)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+++ hw/mthca/user/mlnx_ual_qp.c     (working 
copy)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>@@ -120,7 +120,7 @@<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
attr.cap.max_recv_wr          = 
p_create_attr->rq_depth;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
attr.cap.max_send_sge         = 
p_create_attr->sq_sge;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
attr.cap.max_recv_sge         = 
p_create_attr->rq_sge;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>-     
attr.cap.max_inline_data      = 
0;              
/* absent in IBAL */<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+     
attr.cap.max_inline_data      = 
p_create_attr->sq_max_inline;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
attr.qp_type                                          
= p_create_attr->qp_type;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      attr.sq_sig_all   
                              
= p_create_attr->sq_signaled;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>Index: inc/iba/ib_types.h<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; 
Courier>===================================================================<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>--- inc/iba/ib_types.h  (revision 992)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+++ inc/iba/ib_types.h  (working copy)<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>@@ -9755,6 +9755,7 @@<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> {<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
ib_qp_type_t                  
qp_type;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+     
uint32_t                      
sq_max_inline;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
uint32_t                      
sq_depth;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
uint32_t                      
rq_depth;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>      
uint32_t                      
sq_sge;<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>@@ -9772,6 +9773,10 @@<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *    type<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *          
Specifies the type of queue pair to create.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+*    sq_max_inline<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+*          Maximum 
payload that can be inlined directly in a WQE, eliminating<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+*          
protection checks and additional DMA operations.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier>+*<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *    sq_depth<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *          
Indicates the requested maximum number of work requests that may 
be<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:black? 
New?; Courier> *          
outstanding on the queue pair's send queue.  This value must be 
less<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: " color:blue? 
New?; Courier><o:p> </o:p></SPAN></P>
<DIV>
<P class=MsoNormal> <o:p></o:p></P></DIV></DIV></BODY></HTML>