]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[ND provider] This patch is a fix to 2333. It removes a facility to define MaxDataInl...
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 16 Aug 2009 12:40:46 +0000 (12:40 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 16 Aug 2009 12:40:46 +0000 (12:40 +0000)
Improved latency of ND provider by using INLINE send

This patch adds usage of INLINE DATA facility of Mellanox HCAs for improving latency of ND provider.

Here are the ideas of the patch:
    - by default, ND provider will create QP with inline data of 160 bytes;
    (this can enlarge user's QP size)
    - one can change this default by defining environment variable IBNDPROV_MAX_INLINE_SIZE;

git-svn-id: svn://openib.tc.cornell.edu/gen1@2352 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

trunk/ulp/nd/user/NdEndpoint.cpp
trunk/ulp/nd/user/NdEndpoint.h

index 5d0cee13c5f0e571a4874140ecde292dbff6bc22..b204320f90263d99d4491b2f6e00b1e0057ffa73 100644 (file)
@@ -98,7 +98,7 @@ HRESULT CEndpoint::Initialize(
     __in SIZE_T nOutboundSge,\r
     __in SIZE_T InboundReadLimit,\r
     __in SIZE_T OutboundReadLimit,\r
-    __in_opt __out_opt SIZE_T* pMaxInlineData\r
+    __out_opt SIZE_T* pMaxInlineData\r
     )\r
 {\r
     ND_ENTER( ND_DBG_NDI );\r
@@ -124,11 +124,7 @@ HRESULT CEndpoint::Initialize(
         m_pParent->m_Ifc.user_verbs.post_recv != NULL /*||\r
         m_pParent->m_Ifc.user_verbs.bind_mw != NULL*/ );\r
 \r
-       UINT32 InlineSize;\r
-       if ( pMaxInlineData )\r
-               InlineSize = (UINT32)*pMaxInlineData;\r
-       else\r
-               InlineSize = g_nd_max_inline_size;\r
+       m_MaxInlineSize = g_nd_max_inline_size;\r
                \r
     HRESULT hr = CreateQp(\r
         pInboundCq,\r
@@ -139,7 +135,7 @@ HRESULT CEndpoint::Initialize(
         nOutboundSge,\r
         InboundReadLimit,\r
         OutboundReadLimit,\r
-        InlineSize );\r
+        m_MaxInlineSize );\r
 \r
     if( FAILED( hr ) )\r
         return hr;\r
@@ -151,12 +147,11 @@ HRESULT CEndpoint::Initialize(
                return hr;\r
        }\r
        else\r
-               InlineSize = (UINT32)qp_attr.sq_max_inline;\r
+               m_MaxInlineSize = (UINT32)qp_attr.sq_max_inline;\r
        \r
        \r
     m_Ird = (UINT8)InboundReadLimit;\r
     m_Ord = (UINT8)OutboundReadLimit;\r
-    m_MaxInlineSize = InlineSize;\r
 \r
     // Move the QP to the INIT state so users can post receives.\r
     hr = ModifyQp( IB_QPS_INIT );\r
@@ -164,7 +159,7 @@ HRESULT CEndpoint::Initialize(
         DestroyQp();\r
 \r
     if( SUCCEEDED( hr ) && pMaxInlineData != NULL )\r
-        *pMaxInlineData = InlineSize;\r
+        *pMaxInlineData = m_MaxInlineSize;\r
 \r
     return hr;\r
 }\r
index f72bdb9565bb1575530b49776f5336940486e0ea..fd1eabd4824ec63be2411a8f4803922a9d2b4cc0 100644 (file)
@@ -67,7 +67,7 @@ private:
         __in SIZE_T nOutboundSge,\r
         __in SIZE_T InboundReadLimit,\r
         __in SIZE_T OutboundReadLimit,\r
-        __in_opt __out_opt SIZE_T* pMaxInlineData\r
+        __out_opt SIZE_T* pMaxInlineData\r
         );\r
 \r
 public:\r