[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