[ofa-general] [BUG report / PATCH] fix race in the core multicast management

Hal Rosenstock hrosenstock at xsigo.com
Tue Sep 25 12:21:31 PDT 2007


On Tue, 2007-09-25 at 21:21 +0200, Sasha Khapyorsky wrote:
> On 06:20 Tue 25 Sep     , Hal Rosenstock wrote:
> > On Tue, 2007-09-25 at 15:00 +0200, Or Gerlitz wrote:
> > > Sean Hefty wrote:
> > > >>> node 1 <-> switch A <-> switch B <-> switch C <-> SA
> > > 
> > > >> The host would only see port up/down events as of changes in the link
> > > >> state in the local port or in the port which is connected to it through
> > > >> the cable.
> > > 
> > > > So, if you brought the link down/up between switches A & B, node 1
> > > > wouldn't receive any events, but it would be removed from the multicast
> > > > group?
> > > 
> > > good catch!
> > > 
> > > Indeed, when the link between switches A and B goes down, per the view 
> > > point of the SM, the whole sub-fabric across A is lost and hence the 
> > > node is dropped from all the multicast groups it is joined to.
> > 
> > No, it is not (dropped from all multicast groups it is joined to). It
> > may be removed from the multicast forwarding tables if there is no route
> > available but it is still a member of the group.
> 
> I cannot see it. With normal flow OpenSM will get trap on switch ports
> disconnection, this will trigger heavy sweep and whole A sub-fabrics
> will be dropped right after discovery phase (including multicast groups
> - it is in __osm_drop_mgr_remove_port()).

I was talking "theory"/spec rather than OpenSM. There are a number of
ways to handle this.

> > > However, from the view point of the node, no port down is experienced.
> > > 
> > > When the A-B link goes up, the SM discovers all nodes across A and 
> > > probes their ports, though this process a port active event --might-- be 
> > > generated by the HCA FW, but I am not sure its mandatory.
> > > 
> > > Since the only trigger for ipoib to rejoin to multicast groups is 
> > > delivery of event by the hw driver, namely one of: port down/up, lid 
> > > change, sm lid change, client re-register. I think we might have a hole 
> > > here if none of these events is generated.
> 
> OpenSM will request client reregistration for all ports in A sub-fabric
> when it will be connected back and discovered again.

Other SMs may be capable of dealing with this with less "drastic"
measures than client reregistration.

-- Hal

> Sasha
> 
> > 
> > It doesn't need to rejoin for this case. See above explanation.
> > 
> > -- Hal
> > 
> > > Please note that through this discovery, at least one mad is sent from 
> > > the SM to the node. If we enforce the SM to set the re-register bit 
> > > --each-- time it discovers a node, then the bug is solved.
> > > 
> > > I will test this scheme and let you know what I get (with the voltaire 
> > > SM and mthca driver).
> > > 
> > > Eitan, Michael - any insight on the matter?
> > > 
> > > Or.
> > > 
> > > 
> > > _______________________________________________
> > > general mailing list
> > > general at lists.openfabrics.org
> > > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> > > 
> > > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> > _______________________________________________
> > general mailing list
> > general at lists.openfabrics.org
> > http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> > 
> > To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> _______________________________________________
> general mailing list
> general at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general



More information about the general mailing list