Michael S. Tsirkin wrote:
Can you try this simple patch and see if it fixes your problem? You will
need to call rdma_accept() or rdma_reject() after receiving a CONNECT_RESPONSE
event. The conn_param to rdma_accept() should be NULL.
Signed-off-by: Sean Hefty <[EMAIL PROTECTED]>
---
Index: cma.c
===================================================================
--- cma.c (revision 6948)
+++ cma.c (working copy)
@@ -778,7 +778,7 @@ static int cma_ib_handler(struct ib_cm_i
status = cma_verify_rep(id_priv, ib_event->private_data);
if (status)
event = RDMA_CM_EVENT_CONNECT_ERROR;
- else if (id_priv->id.qp) {
+ else if (id_priv->id.qp && id_priv->id.ps != RDMA_PS_SDP) {
status = cma_rep_recv(id_priv);
event = status ? RDMA_CM_EVENT_CONNECT_ERROR :
RDMA_CM_EVENT_ESTABLISHED;
Would not cma_rep_recv be required to modify the QP?
Anyway, I'll try.
Hmm, it seems that QP will get modified to RTS on RTU only.
That's bad - I want to move it to RTS on REP, since receive completion
might cross RTU and I want to be able to respond to each send immediately.
No, looking in the code shows that qp will be changed to rtr and then
rts ***before*** sending the RTU since you will call rdma_accept which
in turn will call cma_rep_recv
Or.
_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general