aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFaisal Latif <faisal.latif@intel.com>2009-04-27 16:39:36 -0400
committerRoland Dreier <rolandd@cisco.com>2009-04-27 16:39:36 -0400
commit4e9c390036196f89208cf9574dfd19daae146776 (patch)
treec6f80bd2fdebbbfe87ba6f1addf84ed0e6d1af58
parentc11470f9f4d4490cd7e9563f604c4c7868caf6de (diff)
RDMA/nes: Increase rexmit timeout interval
Under heavy load with large cluster testing, it may take longer to receive a response to MPA requests. Change the driver to wait longer after each rexmit to max time value. Signed-off-by: Faisal Latif <faisal.latif@intel.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.c6
-rw-r--r--drivers/infiniband/hw/nes/nes_cm.h1
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
index 1f7a659e6e9a..4969c386785e 100644
--- a/drivers/infiniband/hw/nes/nes_cm.c
+++ b/drivers/infiniband/hw/nes/nes_cm.c
@@ -541,6 +541,7 @@ static void nes_cm_timer_tick(unsigned long pass)
541 struct list_head *list_node; 541 struct list_head *list_node;
542 struct nes_cm_core *cm_core = g_cm_core; 542 struct nes_cm_core *cm_core = g_cm_core;
543 u32 settimer = 0; 543 u32 settimer = 0;
544 unsigned long timetosend;
544 int ret = NETDEV_TX_OK; 545 int ret = NETDEV_TX_OK;
545 546
546 struct list_head timer_list; 547 struct list_head timer_list;
@@ -645,8 +646,11 @@ static void nes_cm_timer_tick(unsigned long pass)
645 send_entry->retrycount); 646 send_entry->retrycount);
646 if (send_entry->send_retrans) { 647 if (send_entry->send_retrans) {
647 send_entry->retranscount--; 648 send_entry->retranscount--;
649 timetosend = (NES_RETRY_TIMEOUT <<
650 (NES_DEFAULT_RETRANS - send_entry->retranscount));
651
648 send_entry->timetosend = jiffies + 652 send_entry->timetosend = jiffies +
649 NES_RETRY_TIMEOUT; 653 min(timetosend, NES_MAX_TIMEOUT);
650 if (nexttimeout > send_entry->timetosend || 654 if (nexttimeout > send_entry->timetosend ||
651 !settimer) { 655 !settimer) {
652 nexttimeout = send_entry->timetosend; 656 nexttimeout = send_entry->timetosend;
diff --git a/drivers/infiniband/hw/nes/nes_cm.h b/drivers/infiniband/hw/nes/nes_cm.h
index 80bba1892571..8b7e7c0e496e 100644
--- a/drivers/infiniband/hw/nes/nes_cm.h
+++ b/drivers/infiniband/hw/nes/nes_cm.h
@@ -149,6 +149,7 @@ struct nes_timer_entry {
149#endif 149#endif
150#define NES_SHORT_TIME (10) 150#define NES_SHORT_TIME (10)
151#define NES_LONG_TIME (2000*HZ/1000) 151#define NES_LONG_TIME (2000*HZ/1000)
152#define NES_MAX_TIMEOUT ((unsigned long) (12*HZ))
152 153
153#define NES_CM_HASHTABLE_SIZE 1024 154#define NES_CM_HASHTABLE_SIZE 1024
154#define NES_CM_TCP_TIMER_INTERVAL 3000 155#define NES_CM_TCP_TIMER_INTERVAL 3000