Browse Source

RDS: Set retry_count to 2 and make modifiable via modparam

This will be default cause IB connections to failover faster,
but allow a longer retry count to be used if desired.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Andy Grover 16 years ago
parent
commit
3ba23ade46
3 changed files with 7 additions and 1 deletions
  1. 3 0
      net/rds/ib.c
  2. 3 0
      net/rds/ib.h
  3. 1 1
      net/rds/ib_cm.c

+ 3 - 0
net/rds/ib.c

@@ -43,11 +43,14 @@
 
 
 unsigned int fmr_pool_size = RDS_FMR_POOL_SIZE;
 unsigned int fmr_pool_size = RDS_FMR_POOL_SIZE;
 unsigned int fmr_message_size = RDS_FMR_SIZE + 1; /* +1 allows for unaligned MRs */
 unsigned int fmr_message_size = RDS_FMR_SIZE + 1; /* +1 allows for unaligned MRs */
+unsigned int rds_ib_retry_count = RDS_IB_DEFAULT_RETRY_COUNT;
 
 
 module_param(fmr_pool_size, int, 0444);
 module_param(fmr_pool_size, int, 0444);
 MODULE_PARM_DESC(fmr_pool_size, " Max number of fmr per HCA");
 MODULE_PARM_DESC(fmr_pool_size, " Max number of fmr per HCA");
 module_param(fmr_message_size, int, 0444);
 module_param(fmr_message_size, int, 0444);
 MODULE_PARM_DESC(fmr_message_size, " Max size of a RDMA transfer");
 MODULE_PARM_DESC(fmr_message_size, " Max size of a RDMA transfer");
+module_param(rds_ib_retry_count, int, 0444);
+MODULE_PARM_DESC(rds_ib_retry_count, " Number of hw retries before reporting an error");
 
 
 struct list_head rds_ib_devices;
 struct list_head rds_ib_devices;
 
 

+ 3 - 0
net/rds/ib.h

@@ -15,6 +15,8 @@
 #define RDS_IB_DEFAULT_RECV_WR		1024
 #define RDS_IB_DEFAULT_RECV_WR		1024
 #define RDS_IB_DEFAULT_SEND_WR		256
 #define RDS_IB_DEFAULT_SEND_WR		256
 
 
+#define RDS_IB_DEFAULT_RETRY_COUNT	2
+
 #define RDS_IB_SUPPORTED_PROTOCOLS	0x00000003	/* minor versions supported */
 #define RDS_IB_SUPPORTED_PROTOCOLS	0x00000003	/* minor versions supported */
 
 
 extern struct list_head rds_ib_devices;
 extern struct list_head rds_ib_devices;
@@ -247,6 +249,7 @@ extern struct ib_client rds_ib_client;
 
 
 extern unsigned int fmr_pool_size;
 extern unsigned int fmr_pool_size;
 extern unsigned int fmr_message_size;
 extern unsigned int fmr_message_size;
+extern unsigned int rds_ib_retry_count;
 
 
 extern spinlock_t ib_nodev_conns_lock;
 extern spinlock_t ib_nodev_conns_lock;
 extern struct list_head ib_nodev_conns;
 extern struct list_head ib_nodev_conns;

+ 1 - 1
net/rds/ib_cm.c

@@ -145,7 +145,7 @@ static void rds_ib_cm_fill_conn_param(struct rds_connection *conn,
 	/* XXX tune these? */
 	/* XXX tune these? */
 	conn_param->responder_resources = 1;
 	conn_param->responder_resources = 1;
 	conn_param->initiator_depth = 1;
 	conn_param->initiator_depth = 1;
-	conn_param->retry_count = 7;
+	conn_param->retry_count = min_t(unsigned int, rds_ib_retry_count, 7);
 	conn_param->rnr_retry_count = 7;
 	conn_param->rnr_retry_count = 7;
 
 
 	if (dp) {
 	if (dp) {