[openib-general] Re: [PATCH 3/3] iWARP CM - iWARP Connection Manager

Steve Wise swise at opengridcomputing.com
Wed Mar 22 06:02:00 PST 2006


| What's needed is a simple way to know that a provider will not invoke 
a callback
| referencing an invalid context.  This code tries to push this 
responsibility to
| the owner of the context (i.e. here), rather than down into the 
provider, where
| it really belongs.
|
| Somewhere the provider is allocating their own context that gets 
associated with
|  the cm_id.  Can we make this explicit in the code?  Could we also 
make the
| de-allocation explicit?  Right now, we have something similar to an 
asynchronous
| destruction model, where the user does something (QP transition?) that 
results
| in a callback (CLOSE event), but only in specific cases.

Once the the cm_id is connected, the provider must post a CLOSE event 
when it is done with the cm_id.  That's the model.  The IWCM will not 
free the cm_id until the CLOSE upcall happens.   Adding an explicit 
alloc_context/dealloc_context in the provider will just push this logic 
down into each provider.  IE:  The chelsio provider would block the 
dealloc_context call until the LLP connection is fully shut down.

Is it better to push this logic down into each provider, or have it in 
one place, the IWCM?  I can go either way, but I want to understand why 
pushing it into the provider is better other than it makes the CM 
simpler (at the expense of each provider).

Stevo.






More information about the general mailing list