public inbox for linux-rdma@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] opensm/osm_state_mgr.c: force heavy sweep when fabric consists of single switch
@ 2009-11-03 10:26 Yevgeny Kliteynik
       [not found] ` <4AF0056A.5030503-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
  0 siblings, 1 reply; 18+ messages in thread
From: Yevgeny Kliteynik @ 2009-11-03 10:26 UTC (permalink / raw)
  To: Sasha Khapyorsky; +Cc: Linux RDMA

Always do heavy sweep when there is only one node in the
fabric, and this node is a switch, and SM runs on top of it -
there may be a race when OSM starts running before the
external ports are ports are up, or if they went through
reset while SM was starting.
In this race switch brings up the ports and turns on the
PSC bit, but OSM might get PortInfo before SwitchInfo, and it
might see all ports as down, but PSC bit on. If that happens,
OSM turns off PSC bit, and it will never see external ports
again - it won't perform any heavy sweep, only light sweep

Signed-off-by: Yevgeny Kliteynik <kliteyn-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
---
 opensm/opensm/osm_state_mgr.c |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c
index 4303d6e..537c855 100644
--- a/opensm/opensm/osm_state_mgr.c
+++ b/opensm/opensm/osm_state_mgr.c
@@ -1062,13 +1062,18 @@ static void do_sweep(osm_sm_t * sm)
 	 * Otherwise, this is probably our first discovery pass
 	 * or we are connected in loopback. In both cases do a
 	 * heavy sweep.
-	 * Note: If we are connected in loopback we want a heavy
-	 * sweep, since we will not be getting any traps if there is
-	 * a lost connection.
+	 * Note the following:
+	 * 1. If we are connected in loopback we want a heavy sweep, since we
+	 *    will not be getting any traps if there is a lost connection.
+	 * 2. If we are in DISCOVERING state - this means it is either in
+	 *    initializing or wake up from STANDBY - run the heavy sweep.
+	 * 3. If there is only one node in the fabric, and this node is a
+	 *    switch, and OSM runs on top of it, there might be a race when
+	 *    OSM starts running before the external ports are up - run the
+	 *    heavy sweep.
 	 */
-	/*  if we are in DISCOVERING state - this means it is either in
-	 *  initializing or wake up from STANDBY - run the heavy sweep */
 	if (cl_qmap_count(&sm->p_subn->sw_guid_tbl)
+	    && cl_qmap_count(&sm->p_subn->node_guid_tbl) != 1
 	    && sm->p_subn->sm_state != IB_SMINFO_STATE_DISCOVERING
 	    && sm->p_subn->opt.force_heavy_sweep == FALSE
 	    && sm->p_subn->force_heavy_sweep == FALSE
-- 
1.5.1.4

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

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2009-11-13 15:20 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-03 10:26 [PATCH] opensm/osm_state_mgr.c: force heavy sweep when fabric consists of single switch Yevgeny Kliteynik
     [not found] ` <4AF0056A.5030503-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-03 22:12   ` Sasha Khapyorsky
2009-11-04  9:47     ` Yevgeny Kliteynik
     [not found]       ` <4AF14DCD.3010407-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-04 11:36         ` Line Holen
     [not found]           ` <4AF16740.3080600-UdXhSnd/wVw@public.gmane.org>
2009-11-04 15:54             ` Yevgeny Kliteynik
     [not found]               ` <4AF1A3CA.9070902-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-04 17:42                 ` Line Holen
     [not found]                   ` <4AF1BD1C.4090703-UdXhSnd/wVw@public.gmane.org>
2009-11-04 18:39                     ` Yevgeny Kliteynik
     [not found]                       ` <4AF1CA61.2020007-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-05  7:29                         ` Yevgeny Kliteynik
     [not found]                           ` <4AF27EDB.6070604-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-08 14:30                             ` Eli Dorfman (Voltaire)
     [not found]                               ` <4AF6D619.8000908-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-11-09  8:18                                 ` Yevgeny Kliteynik
     [not found]                                   ` <4AF7D040.2060807-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-09 10:42                                     ` Eli Dorfman (Voltaire)
     [not found]                                       ` <4AF7F22D.9010609-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-11-09 11:09                                         ` Yevgeny Kliteynik
     [not found]                                           ` <4AF7F864.6030809-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-09 13:54                                             ` Eli Dorfman (Voltaire)
     [not found]                                               ` <4AF81F15.1080205-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-11-11  9:15                                                 ` Yevgeny Kliteynik
     [not found]                                                   ` <4AFA80A5.8080809-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-12  8:05                                                     ` Eli Dorfman (Voltaire)
     [not found]                                                       ` <4AFBC1B7.8090509-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2009-11-12 12:50                                                         ` Yevgeny Kliteynik
     [not found]                                                           ` <4AFC04A8.1040808-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2009-11-13  8:24                                                             ` Eli Dorfman
     [not found]                                                               ` <694d48600911130024vd803e5fhf835690742f14ba7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-11-13 15:20                                                                 ` Sasha Khapyorsky

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox