[ofa-general] [PATCH] OFED 1.2.1 rdma_cm response timeout module parameter

Davis, Arlin R arlin.r.davis at intel.com
Wed Jul 11 14:36:41 PDT 2007


Sean,

OFED 1.2 removed the rdma_set_option call used to adjust response
timeout. We are running into some cases on larger clusters that require
longer timeouts then the default. Can you consider this rdma_cm patch
for OFED 1.2.1 that adds a module parameter for the response timeout?
Thanks.

Signed-off by: Arlin Davis <ardavis at ichips.intel.com>

--- a/drivers/infiniband/core/cma.c	2007-07-11 10:46:48.000000000
-0700
+++ b/drivers/infiniband/core/cma.c	2007-07-11 10:54:16.000000000
-0700
@@ -58,6 +58,10 @@ MODULE_PARM_DESC(tavor_quirk, "Tavor per
 #define CMA_CM_RESPONSE_TIMEOUT 20
 #define CMA_MAX_CM_RETRIES 15
 
+static int cma_response_timeout = CMA_CM_RESPONSE_TIMEOUT;
+module_param_named(cma_response_timeout, cma_response_timeout, int,
0644);
+MODULE_PARM_DESC(cma_response_timeout, "CMA_CM_RESPONSE_TIMEOUT
default=20");
+
 static void cma_add_one(struct ib_device *device);
 static void cma_remove_one(struct ib_device *device);
 
@@ -2157,7 +2161,7 @@ static int cma_resolve_ib_udp(struct rdm
 	req.path = route->path_rec;
 	req.service_id = cma_get_service_id(id_priv->id.ps,
 					    &route->addr.dst_addr);
-	req.timeout_ms = 1 << (CMA_CM_RESPONSE_TIMEOUT - 8);
+	req.timeout_ms = 1 << (cma_response_timeout - 8);
 	req.max_cm_retries = CMA_MAX_CM_RETRIES;
 
 	ret = ib_send_cm_sidr_req(id_priv->cm_id.ib, &req);
@@ -2216,8 +2220,8 @@ static int cma_connect_ib(struct rdma_id
 	req.flow_control = conn_param->flow_control;
 	req.retry_count = conn_param->retry_count;
 	req.rnr_retry_count = conn_param->rnr_retry_count;
-	req.remote_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT;
-	req.local_cm_response_timeout = CMA_CM_RESPONSE_TIMEOUT;
+	req.remote_cm_response_timeout = cma_response_timeout;
+	req.local_cm_response_timeout = cma_response_timeout;
 	req.max_cm_retries = CMA_MAX_CM_RETRIES;
 	req.srq = id_priv->srq ? 1 : 0;
 
@@ -2344,7 +2348,7 @@ static int cma_accept_ib(struct rdma_id_
 	rep.private_data_len = conn_param->private_data_len;
 	rep.responder_resources = conn_param->responder_resources;
 	rep.initiator_depth = conn_param->initiator_depth;
-	rep.target_ack_delay = CMA_CM_RESPONSE_TIMEOUT;
+	rep.target_ack_delay = cma_response_timeout;
 	rep.failover_accepted = 0;
 	rep.flow_control = conn_param->flow_control;
 	rep.rnr_retry_count = conn_param->rnr_retry_count;



More information about the general mailing list