[openib-general] Re: [PATCH] RE: compliancy issue?

Michael S. Tsirkin mst at mellanox.co.il
Tue May 9 22:43:13 PDT 2006


Quoting r. Michael S. Tsirkin <mst at mellanox.co.il>:
> Subject: Re: [PATCH] RE: compliancy issue?
> 
> Quoting r. Sean Hefty <sean.hefty at intel.com>:
> > Subject: [PATCH] RE: compliancy issue?
> > 
> > >CA4-24.2.3: The connecting peer shall terminate the connection attempt
> > >if ExtMaxAdverts of the HAH is set to zero.
> > >
> > >This means that SDP must examine the HAH before RTU is sent.
> > >But, CMA currently sends RTU from cma_rep_recv, before notifying
> > >the user.
> > 
> > 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.

I'll do some more tests.

-- 
MST



More information about the general mailing list