[openib-general] RDMA CM callback status

Sean Hefty sean.hefty at intel.com
Thu Sep 21 09:54:22 PDT 2006


>1. Should I even be looking at event->status or does the event type tell me
>   everything I need to know?  I've had a report that the assertion
>   (event->status != 0) is failing on RDMA_CM_EVENT_ROUTE_ERROR.

The event type is usually sufficient.  In the case of an error, the status
should provide some additional information regarding the type of error.

It sounds like (and looks like from reading the code) that you've hit a bug with
the ROUTE_ERROR event.  The failure status isn't being propagated up to the
user.

>2. /* handle error out-of-line */ above means I record failure in my connection
>   data structure, start teardown and drop the callback's reference on it.
>   When the last reference goes, the connection data structure is queued for
>   final destruction (including rdma_destroy_id(cmid)).
>
>   Given that this might race with the callback's caller is this OK?

Yes - The RDMA CM holds a reference on the cmid while in a callback, and drops
it once the callback returns.  rdma_destroy_id() will block until all references
are released on the cmid.

- Sean




More information about the general mailing list