[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