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

Reply via email to