[ewg] [PATCH 4/10 VNIC] Delay reconnects to prevent flooding of EVIC

Ramachandra K ramachandra.kuchimanchi at qlogic.com
Tue Aug 21 07:24:25 PDT 2007


Delay the reconnects to prevent the flooding of EVIC in case of a failure.

From: Poornima Kamath <poornima.kamath at qlogic.com>
Signed-off-by: Ramachandra K <ramachandra.kuchimanchi at qlogic.com>
---

 drivers/infiniband/ulp/vnic/vnic_main.c    |    7 +++++--
 drivers/infiniband/ulp/vnic/vnic_netpath.h |    1 +
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/infiniband/ulp/vnic/vnic_main.c b/drivers/infiniband/ulp/vnic/vnic_main.c
index eab123b..e44f0f0 100644
--- a/drivers/infiniband/ulp/vnic/vnic_main.c
+++ b/drivers/infiniband/ulp/vnic/vnic_main.c
@@ -464,11 +464,14 @@ static void update_path_and_reconnect(st
 		      vnic->config->no_path_timeout) {
 		netpath->path_idx = config->path_idx;
 		netpath->connect_time = jiffies;
+		netpath->delay_reconnect = 0;
 		delay = 0;
 	} else if (config->path_idx != netpath->path_idx) {
-		delay = 0;
+		delay = netpath->delay_reconnect;
 		netpath->path_idx = config->path_idx;
-	}
+		netpath->delay_reconnect = 1;
+	} else
+		delay = 1;
 	viport_connect(netpath->viport, delay);
 }
 
diff --git a/drivers/infiniband/ulp/vnic/vnic_netpath.h b/drivers/infiniband/ulp/vnic/vnic_netpath.h
index 51fa3a8..cc43c83 100644
--- a/drivers/infiniband/ulp/vnic/vnic_netpath.h
+++ b/drivers/infiniband/ulp/vnic/vnic_netpath.h
@@ -54,6 +54,7 @@ struct netpath {
 	u32			connect_time;
 	int			second_bias;
 	u8			is_primary_path;
+	u8 			delay_reconnect;
 	struct timer_list	timer;
 	enum netpath_ts		timer_state;
 	struct class_dev_info	class_dev_info;



More information about the ewg mailing list