| 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
