[openib-general] Re: User Level Events - request for support

Michael S. Tsirkin mst at mellanox.co.il
Thu Mar 17 02:03:09 PST 2005


Quoting r. Eitan Zahavi <eitan at mellanox.co.il>:
> Subject: User Level Events - request for support
> 
> I would like to propose for gen2 stack to have a user level API supporting
> registration for notifications on unaffiliated asynchronous events.
> 
> As an example in cases when the local IB port link goes down an SM that runs on
> top of this port needs to be notified and start a sweep when the port is back
> up. Missing such event, in user land, prevents the SM from knowing about the
> change.
> 
> Currently gen1 and gen2 OpenSM is not registered to get these events. The SM
> will then fail to reconfigure the subnet in cases like:
> 
> 1.      The SM cable connects to a switch and the user changes the switch port
> the SM is connected to. In this case the SM might be in the middle of a sweep
> and do not even notice (due to the short time the change takes) that there was
> a change. Traps coming from the switch are forwarded to the old port the SM was
> connected to and are dropped (as the port is down). As OpenSM does not know
> there was any change in the subnet topology, it will not perform a heavy sweep.
> 
> 2.      The switch connected to the SM is rebooted. If the reboot happens so
> fast that it falls between two light sweeps, OpenSM will not be able to know
> the switch was reset (as all SMPs are DR).
> 
> Although one can write special case code to handle these cases, due to the
> asynchronous nature of things there are many races that can not be resolved
> without a simple "port up/down" event that the SM should register to.
> 
> Hope this provides enough reason behind my request for a user-level event
> notification mechanism.
> 
> Eitan
> 

uverbs already have this capability, of course.

However I think I agree it might make sence to add this capability
to umad. Since sm is already blocking on read from umad, it might
be simplest to make read return with an error code. Does this make
sence?

Alternatively, we could try using kobject_uevent.

-- 
MST - Michael S. Tsirkin



More information about the general mailing list