[ofa-general] [PATCH 3/4][v2.0] dapl: adjust max_rdma_read_iov to 1 for query on iWARP devices

Arlin Davis arlin.r.davis at intel.com
Fri Oct 3 11:09:08 PDT 2008



iWarp spec allows only one iov on rdma reads

Signed-off-by: Arlin Davis <ardavis at ichips.intel.com>
---
 dapl/openib_cma/dapl_ib_util.c |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dapl/openib_cma/dapl_ib_util.c b/dapl/openib_cma/dapl_ib_util.c
index 72d8237..36b534e 100755
--- a/dapl/openib_cma/dapl_ib_util.c
+++ b/dapl/openib_cma/dapl_ib_util.c
@@ -502,7 +502,14 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA *hca_ptr,
 		ia_attr->transport_attr           = NULL;
 		ia_attr->num_vendor_attr          = 0;
 		ia_attr->vendor_attr              = NULL;
-		ia_attr->max_iov_segments_per_rdma_read = dev_attr.max_sge;
+		/* iWARP spec. - 1 sge for RDMA reads */
+		if (hca_ptr->ib_hca_handle->device->transport_type
+							== IBV_TRANSPORT_IWARP)
+			ia_attr->max_iov_segments_per_rdma_read = 1;
+		else
+			ia_attr->max_iov_segments_per_rdma_read =
+							dev_attr.max_sge;
+
 		ia_attr->max_iov_segments_per_rdma_write = dev_attr.max_sge;
 		/* save rd_atom for peer validation during connect requests */
 		hca_ptr->ib_trans.max_rdma_rd_in  = dev_attr.max_qp_rd_atom;
@@ -537,7 +544,13 @@ DAT_RETURN dapls_ib_query_hca(IN DAPL_HCA *hca_ptr,
 		ep_attr->max_request_iov  = dev_attr.max_sge;
 		ep_attr->max_rdma_read_in = dev_attr.max_qp_rd_atom;
 		ep_attr->max_rdma_read_out= dev_attr.max_qp_init_rd_atom;
-		ep_attr->max_rdma_read_iov= dev_attr.max_sge;
+		/* iWARP spec. - 1 sge for RDMA reads */
+		if (hca_ptr->ib_hca_handle->device->transport_type
+							== IBV_TRANSPORT_IWARP)
+			ep_attr->max_rdma_read_iov = 1;
+		else
+			ep_attr->max_rdma_read_iov = dev_attr.max_sge;
+
 		ep_attr->max_rdma_write_iov= dev_attr.max_sge;
 		dapl_log(DAPL_DBG_TYPE_UTIL, 
 			"dapl_query_hca: MAX msg %llu dto %d iov %d"
-- 
1.5.2.5





More information about the general mailing list