[ofw] [PATCH] ND provider INDAdaper::Query busted

Fab Tillier ftillier at microsoft.com
Wed Mar 10 23:46:22 PST 2010


The INDAdapter::Query implementation doesn't set the maximum transfer lengths properly.  This patch fixes this, and allows MSMPI to chunk large transfers properly.

Note that the changes to ib_port_attr_t to support RoCEE (the transport enum) broke my testing because I tried updating only the ND provider without updating the kernel drivers.  This sucked, and the transport field should be moved as Sean pointed out (and provided a patch.)

Signed-off-by: Fab Tillier <ftillier at microsoft.com>

Index: ulp/nd/user/NdAdapter.cpp
===================================================================
--- ulp/nd/user/NdAdapter.cpp	(revision 2676)
+++ ulp/nd/user/NdAdapter.cpp	(working copy)
@@ -256,12 +256,14 @@ HRESULT CAdapter::Query(
         return hr;
     }
 
+    pInfo->VendorId = pAttr->vend_id;
+    pInfo->DeviceId = pAttr->dev_id;
     pInfo->MaxInboundSge = pAttr->max_sges;
     pInfo->MaxInboundRequests = pAttr->max_wrs;
-    pInfo->MaxInboundLength = INT_MAX;
+    pInfo->MaxInboundLength = pAttr->p_port_attr[m_PortNum - 1].max_msg_size;
     pInfo->MaxOutboundSge = pAttr->max_sges;
     pInfo->MaxOutboundRequests = pAttr->max_wrs;
-    pInfo->MaxOutboundLength = INT_MAX;
+    pInfo->MaxOutboundLength = pAttr->p_port_attr[m_PortNum - 1].max_msg_size;
     pInfo->MaxInboundReadLimit = pAttr->max_qp_resp_res;
     pInfo->MaxOutboundReadLimit = pAttr->max_qp_init_depth;
     pInfo->MaxCqEntries = pAttr->max_cqes;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: nd.patch
Type: application/octet-stream
Size: 959 bytes
Desc: nd.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20100311/dc01fb25/attachment.obj>


More information about the ofw mailing list