| 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.



_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to