aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2009-07-17 09:13:22 -0400
committerDavid S. Miller <davem@davemloft.net>2009-07-20 11:03:01 -0400
commit3ba23ade464cca7c4a7ba5628c613339d3f2e161 (patch)
treeb0c5e487a9b2461fbbfdcedde870d2b545b5deb3
parent4edf547b4d0f886acf5aa5a0c8f8edbaff280830 (diff)
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>
-rw-r--r--net/rds/ib.c3
-rw-r--r--net/rds/ib.h3
-rw-r--r--net/rds/ib_cm.c2
3 files changed, 7 insertions, 1 deletions
diff --git a/net/rds/ib.c b/net/rds/ib.c
index b9bcd32431e1..27abdd3df2cc 100644
--- a/net/rds/ib.c
+++ b/net/rds/ib.c
@@ -43,11 +43,14 @@
43 43
44unsigned int fmr_pool_size = RDS_FMR_POOL_SIZE; 44unsigned int fmr_pool_size = RDS_FMR_POOL_SIZE;
45unsigned int fmr_message_size = RDS_FMR_SIZE + 1; /* +1 allows for unaligned MRs */ 45unsigned int fmr_message_size = RDS_FMR_SIZE + 1; /* +1 allows for unaligned MRs */
46unsigned int rds_ib_retry_count = RDS_IB_DEFAULT_RETRY_COUNT;
46 47
47module_param(fmr_pool_size, int, 0444); 48module_param(fmr_pool_size, int, 0444);
48MODULE_PARM_DESC(fmr_pool_size, " Max number of fmr per HCA"); 49MODULE_PARM_DESC(fmr_pool_size, " Max number of fmr per HCA");
49module_param(fmr_message_size, int, 0444); 50module_param(fmr_message_size, int, 0444);
50MODULE_PARM_DESC(fmr_message_size, " Max size of a RDMA transfer"); 51MODULE_PARM_DESC(fmr_message_size, " Max size of a RDMA transfer");
52module_param(rds_ib_retry_count, int, 0444);
53MODULE_PARM_DESC(rds_ib_retry_count, " Number of hw retries before reporting an error");
51 54
52struct list_head rds_ib_devices; 55struct list_head rds_ib_devices;
53 56
diff --git a/net/rds/ib.h b/net/rds/ib.h
index 455ae73047fe..420afb95ca1a 100644
--- a/net/rds/ib.h
+++ b/net/rds/ib.h
@@ -15,6 +15,8 @@
15#define RDS_IB_DEFAULT_RECV_WR 1024 15#define RDS_IB_DEFAULT_RECV_WR 1024
16#define RDS_IB_DEFAULT_SEND_WR 256 16#define RDS_IB_DEFAULT_SEND_WR 256
17 17
18#define RDS_IB_DEFAULT_RETRY_COUNT 2
19
18#define RDS_IB_SUPPORTED_PROTOCOLS 0x00000003 /* minor versions supported */ 20#define RDS_IB_SUPPORTED_PROTOCOLS 0x00000003 /* minor versions supported */
19 21
20extern struct list_head rds_ib_devices; 22extern struct list_head rds_ib_devices;
@@ -247,6 +249,7 @@ extern struct ib_client rds_ib_client;
247 249
248extern unsigned int fmr_pool_size; 250extern unsigned int fmr_pool_size;
249extern unsigned int fmr_message_size; 251extern unsigned int fmr_message_size;
252extern unsigned int rds_ib_retry_count;
250 253
251extern spinlock_t ib_nodev_conns_lock; 254extern spinlock_t ib_nodev_conns_lock;
252extern struct list_head ib_nodev_conns; 255extern struct list_head ib_nodev_conns;
diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
index f8e40e1a6038..605c032ed5d5 100644
--- a/net/rds/ib_cm.c
+++ b/net/rds/ib_cm.c
@@ -145,7 +145,7 @@ static void rds_ib_cm_fill_conn_param(struct rds_connection *conn,
145 /* XXX tune these? */ 145 /* XXX tune these? */
146 conn_param->responder_resources = 1; 146 conn_param->responder_resources = 1;
147 conn_param->initiator_depth = 1; 147 conn_param->initiator_depth = 1;
148 conn_param->retry_count = 7; 148 conn_param->retry_count = min_t(unsigned int, rds_ib_retry_count, 7);
149 conn_param->rnr_retry_count = 7; 149 conn_param->rnr_retry_count = 7;
150 150
151 if (dp) { 151 if (dp) {