[ofa-general] Re: [PATCH 2/2] opensm: OpenSM state machine rework
Sasha Khapyorsky
sashak at voltaire.com
Fri Feb 1 09:46:46 PST 2008
On 18:56 Wed 30 Jan , Sasha Khapyorsky wrote:
>
> Instead of tricky state machine it implements plain flow do_sweep()
> function which uses wait_for_pending_transaction() blocker.
>
> One of the goals of this patch is to preserve the original OpenSM
> behavior.
Small bug is here.
OpenSM queries NodeInfo only during discovery and finding a new nodes is
expected. If so we don't need to request new discovery in this case. It
is addition:
diff --git a/opensm/opensm/osm_node_info_rcv.c b/opensm/opensm/osm_node_info_rcv.c
index 2106aa2..844dfcf 100644
--- a/opensm/opensm/osm_node_info_rcv.c
+++ b/opensm/opensm/osm_node_info_rcv.c
@@ -853,10 +853,9 @@ void osm_ni_rcv_process(IN void *context, IN void *data)
osm_dump_node_info(sm->p_log, p_ni, OSM_LOG_DEBUG);
- if (!p_node) {
+ if (!p_node)
__osm_ni_rcv_process_new(sm, p_madw);
- sm->p_subn->force_heavy_sweep = 1;
- } else
+ else
__osm_ni_rcv_process_existing(sm, p_node, p_madw);
CL_PLOCK_RELEASE(sm->p_lock);
Since CHANGE_DETECTED signal was ignored during subnet discovery phase
by old OpenSM state machine it was useless event but worked.
Sasha
More information about the general
mailing list