[openib-general] multiple RDMA_CM_EVENT_DISCONNECTED callbacks

Sean Hefty mshefty at ichips.intel.com
Fri May 19 10:34:23 PDT 2006


Eric Barton wrote:
> I'm using the rdam_cm API.  I've seen it call my CM callback with
> RDMA_CM_EVENT_DISCONNECTED twice.  Is this a bug?

I would consider this a bug.

The problem is that the underlying IB CM is reporting two events: DREQ_RECEIVED, 
followed by DREP_RECEIVED.  The RDMA CM reports both of these as DISCONNECTED 
events.  It makes more sense to me if the RDMA CM only reported the first event, 
and discarded the second.

> I've implemented connection teardown procedure that checks whether this is the
> first time it has been called on a given connection.  If not, it's a NOOP.
> Otherwise it schedules the connection for teardown by a thread.  This thread
> calls rdma_disconnect() and then explicitly moves the QP state to error (but
> maybe that's redundant?).

rdma_disconnect will transition the QP into the error state.  I recently updated 
the documentation to clarify this.

Thanks for the report.

- Sean



More information about the general mailing list