Delay the reconnects to prevent the flooding of EVIC in case of a failure.
From: Poornima Kamath <[EMAIL PROTECTED]>
Signed-off-by: Ramachandra K <[EMAIL PROTECTED]>
---
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;
_______________________________________________
ewg mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg