[openib-general] RE: CMA deadlock
Sean Hefty
sean.hefty at intel.com
Mon Apr 3 10:17:09 PDT 2006
> A ULP requests address resolution; on success requests route resolution;
> route resolution succeeds; inside the callback ULP requests rdma_connect.
> Now, a failure (e.g. out of memory) occurs at ULP level and so it decides to
> destroy the ID. To this end it returns failure code from the route callback.
I didn't consider this possibility. The only solution I can see at the moment
is to schedule route resolution to a separate thread, as you suggested.
>And it seems that, if the user callback returns failure, the CMA actually calls
>rdma_destroy_id which in turn may call ib_destroy_cm_id from inside the CM
>callback. I think this might deadlock in a similiar way. Again, bouncing the
>CM
>event to the rdma WQ will solve this I think.
This should be handled by the code. See the comment near the bottom of the
cma_ib_handler() routine.
- Sean
More information about the general
mailing list