[HW, WvVerbs] Pass through the user's specified max inline data value when creating...
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 12 May 2009 13:24:37 +0000 (13:24 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 12 May 2009 13:24:37 +0000 (13:24 +0000)
Currently, if the user specifies a value, it gets ignored when the QP is created.  The inline data value supported is then returned to the user, which may be less than requested.

This fixes a failure running dtest over mthca adapters.  Mlx4 adapters end up working for userspace apps because the max_inline_data is passed from the UVP to the kernel via the UMV buffer.  However, for completeness, fixup kernel calls for QP creation from IBAL for mlx4.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@2166 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/winverbs/kernel/wv_qp.c
hw/mlx4/kernel/hca/qp.c
hw/mthca/kernel/hca_verbs.c

index 5b93992..26aec27 100644 (file)
@@ -47,6 +47,7 @@ static void WvVerbsConvertCreate(ib_qp_create_t *pVerbsAttr,
        pVerbsAttr->h_srq = (pQp->pSrq != NULL) ? pQp->pSrq->hVerbsSrq : NULL;\r
 \r
        pVerbsAttr->qp_type = (ib_qp_type_t) pAttr->QpType;\r
+       pVerbsAttr->sq_max_inline = pAttr->MaxInlineSend;\r
        pVerbsAttr->sq_depth = pAttr->SendDepth;\r
        pVerbsAttr->rq_depth = pAttr->ReceiveDepth;\r
        pVerbsAttr->sq_sge = pAttr->SendSge;\r
index 2e7a16a..5da9c0e 100644 (file)
@@ -135,7 +135,8 @@ __create_qp (
                qp_init_attr.cap.max_send_sge = p_create_attr->sq_sge;\r
                qp_init_attr.cap.max_recv_wr = p_create_attr->rq_depth;\r
                qp_init_attr.cap.max_send_wr = p_create_attr->sq_depth;\r
-               qp_init_attr.cap.max_inline_data = 0;   /* absent in IBAL */\r
+               qp_init_attr.cap.max_inline_data = p_create_attr->sq_max_inline;\r
+               \r
        }\r
        qp_init_attr.sq_sig_type = (p_create_attr->sq_signaled) ? IB_SIGNAL_ALL_WR : IB_SIGNAL_REQ_WR;\r
        qp_init_attr.qp_type = to_qp_type(p_create_attr->qp_type);\r
index 9644cef..68fd263 100644 (file)
@@ -1050,6 +1050,7 @@ _create_qp (
        qp_init_attr.recv_cq = (struct ib_cq *)p_create_attr->h_rq_cq;\r
        qp_init_attr.send_cq = (struct ib_cq *)p_create_attr->h_sq_cq;\r
        qp_init_attr.srq = (struct ib_srq *)p_create_attr->h_srq;\r
+       qp_init_attr.cap.max_inline_data = p_create_attr->sq_max_inline;\r
        qp_init_attr.cap.max_recv_sge = p_create_attr->rq_sge;\r
        qp_init_attr.cap.max_send_sge = p_create_attr->sq_sge;\r
        qp_init_attr.cap.max_recv_wr = p_create_attr->rq_depth;\r