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

Smith, Stan stan.smith at intel.com
Thu Mar 11 10:59:39 PST 2010


SIZE_T cast required for 'Warning free' compile on win7 x86 checked.

pInfo->MaxInboundLength = (SIZE_T) pAttr->p_port_attr[m_PortNum - 1].max_msg_size;
pInfo->MaxOutboundLength = (SIZE_T) pAttr->p_port_attr[m_PortNum - 1].max_msg_size;

stan.

Fab Tillier wrote:
> 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;




More information about the ofw mailing list