[openib-general] [PATCH] for 2-6-19 rdma/addr: use client registration to fix module unload race

Michael S. Tsirkin mst at mellanox.co.il
Thu Nov 2 10:22:07 PST 2006


Quoting r. Sean Hefty <mshefty at ichips.intel.com>:
> I use the callback method of destruction for new cm_id's in the ucm and ucma
> modules, so I want to keep this feature myself.  However, this method is
> unused, and likely unneeded, for events other than connection requests.  If
> this is the case, we can update the documentation, and remove this support
> except for new connections.
> 

I rethought the issue, and I don't think its a good assumption to make.
Let's stick to the old API.

For example, SDP uses the callback destrouction capability for all IDs.  For
example, if on the active side I get a reject, it is much nicer to get the id
cleaned up immediately since I have no reason to keep it around, and because I
want to put the socket back in the same state it was in before connect ( that is
without connection id), so new connect request will restart everything.
Otherwise it is quite awkward, I'm just wasting memory, and applications
actually *do* keep a huge number of inactive sockets around.

I expect we'll want something like this for IPoIB connected mode too -
keeping idle IDs and queueing work requests would be quite awkward I think.

Adding registration at module start/stop seems simple enough and overhead is
minimal. We already have this for other modules (e.g. ib_sa).  I don't really
unerstand why is there such a resistance to this simple fix for unload race?

-- 
MST




More information about the general mailing list