Eric Barton wrote: > I create 1 CQ just for receive completions on each of my QPs. When I tear > down > the QP, I rdma_disconnect(), change the QP state to IB_QPS_ERR and then wait > for all currently posted receives to complete.
I understand your driver is a CMA consumer whose QP state transitions are carried out by the CMA. So you need ***not*** modify the QP state to error, as the CMA does it for you in rdma_disconnect() before sending the DREQ or DREP. Please note that you need to call rdma_disconnect() in both sides, the one that initiates the disconnection but also on the side that gets the DREQ, that is suddenly gets RDMA_CM_EVENT_DISCONNECTED event (note that also the disconnection initiator would get this event and if you call there again to rdma_disconnect() its not going to break anything, i think). Is it possible that manual QP modify to error in your code actually covered the latter case where you did not call rdma_disconnect()? Or. _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
