[openib-general] Re: [PATCH] RE: compliancy issue?
Or Gerlitz
ogerlitz at voltaire.com
Wed May 10 00:48:25 PDT 2006
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 <sean.hefty at intel.com>
>>> ---
>>> 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.
More information about the general
mailing list