[openib-general] design for communication established affiliated asynchronous event handling

James Lentini jlentini at netapp.com
Fri Jun 16 08:25:06 PDT 2006



On Fri, 16 Jun 2006, Or Gerlitz wrote:

> On 6/15/06, James Lentini <jlentini at netapp.com> wrote:
> > ib_cm_establish() doesn't emulate an RTU reception. It generates an
> > IB_CM_USER_ESTABLISHED event (not an IB_CM_RTU_RECEIVED event). The
> > CMA's cma_ib_handler() doesn't recognize a IB_CM_USER_ESTABLISHED
> > event. The QP's state will not be moved to RTS.
> 
> This is what i was suspecting, Sean can you confirm that? if it does
> not emulate RTU
> reception, than what it does do?
> 
> > Consumers don't actually have to queue the completions, they have to
> > defer posting sends (either in response to the recvs or otherwise)
> > until the QP moves to RTS. Could the implementations queue up the
> > requests for the consumers?
> 
> nope the CM/CMA are not in charge of the consumer CQ, so there is no 
> way for them to queue those completions and anyway, i think its 

I was refering to requests, not completions. In any event, I like 
Sean's idea of moving the QP to RTS when a REP is sent better.

> wrong for lower layer to queue completions, this "race" exists by 
> IB's nature (since the RTU goes to QP1 and the data to the user's QP 
> and the two QPs are totally unrelated) so if you want to have 
> production with IB you need to handle this case in your code, as 
> others do.

Agreed.

> > Strictly speaking, IB requires an error to be generated (C10-29 in 
> > the IBTA spec. vol 1, page 456). Still, it would be nice if 
> > consumers didn't have to be worry about this issue.
> 
> What do you mean by error, this async event happens all the time, 
> you can't error the establishment just b/c it happend. I don't have 
> access now to the spec, so i can't say what i understand from the 
> section you have pointed to.

Again, I was refering to requests, not completions. 




More information about the general mailing list