Because of the race between Get(SwitchInfo) and Get(NodeInfo) to the
same switch, SM will send additional Get(SwitchInfo) before it get a
first reply. In a sequence SM will send many redundant MADs and slow
down the discovery process significantly.
With this fix, when a switch doesn't respond to Get(SwitchInfo) once
during the sweep it will be dropped.

Signed-off-by: Alex Netes <ale...@mellanox.com>
---
 opensm/osm_node_info_rcv.c |   11 -----------
 1 files changed, 0 insertions(+), 11 deletions(-)

diff --git a/opensm/osm_node_info_rcv.c b/opensm/osm_node_info_rcv.c
index c0233f7..b7c20e8 100644
--- a/opensm/osm_node_info_rcv.c
+++ b/opensm/osm_node_info_rcv.c
@@ -573,20 +573,9 @@ static void ni_rcv_process_existing_switch(IN osm_sm_t * 
sm,
        /*
           If this switch has already been probed during this sweep,
           then don't bother reprobing it.
-          There is one exception - if the node has been visited, but
-          for some reason we don't have the switch object (this can happen
-          if the SwitchInfo mad didn't reach the SM) then we want
-          to retry to probe the switch.
         */
        if (p_node->discovery_count == 1)
                ni_rcv_process_switch(sm, p_node, p_madw);
-       else if (!p_node->sw) {
-               /* we don't have the SwitchInfo - retry to get it */
-               OSM_LOG(sm->p_log, OSM_LOG_DEBUG,
-                       "Retry to get SwitchInfo on node GUID:0x%" PRIx64 "\n",
-                       cl_ntoh64(osm_node_get_node_guid(p_node)));
-               ni_rcv_process_switch(sm, p_node, p_madw);
-       }
 
        OSM_LOG_EXIT(sm->p_log);
 }
-- 
1.7.1

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to