Better way to handle polling other MASTER SM
PATCH 1/1 Better way to handle polling other MASTER SM
From: Alex Netes <alexne-VPRAkNaXOzVWk0Htik3J/[email protected]>
In the case where another MASTER SM disappears, call OSM_SM_SIGNAL_POLLING_TIMEOUT to reconfigure the fabric from scratch.
--- opensm/osm_drop_mgr.c | 3 --- opensm/osm_state_mgr.c | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-)
opensm/osm_drop_mgr.c +0 -3
@@ -257,9 +257,6 @@ static void drop_mgr_remove_port(osm_sm_t * sm, IN osm_port_t * p_port)OSM_LOG (sm->p_log,OSM_LOG_VERBOSE ,"Cleaned SM for port guid 0x%016" PRIx64"\n" ,cl_ntoh64 (port_guid)); -/* clean up the polling_sm_guid */ -if (sm->polling_sm_guid == p_sm->smi.guid) - sm->polling_sm_guid =0 ;free (p_sm); }
opensm/osm_state_mgr.c +7 -0
@@ -1404,10 +1404,17 @@ repeat_discovery:* need to wait for that SM to relinquish control * of its portion of the subnet. C14-60.2.1. * Also - need to start polling on that SM. */ +CL_PLOCK_EXCL_ACQUIRE (sm->p_lock); sm->polling_sm_guid = p_remote_sm->smi.guid; +CL_PLOCK_RELEASE (sm->p_lock);osm_sm_state_mgr_process (sm,OSM_SM_SIGNAL_WAIT_FOR_HANDOVER );return ; + }else if (sm->polling_sm_guid) { +/* Stop polling SM if it's not found */ +osm_sm_state_mgr_process (sm, +OSM_SM_SIGNAL_POLLING_TIMEOUT ); +return ; } } }
Signature · 6 lines
1.7.8.2 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html