[openib-general] (SPAM?) Re: [PATCH 0/4] Dispatch communication related events to the IB CM

Sean Hefty mshefty at ichips.intel.com
Fri Aug 4 14:28:56 PDT 2006


Sean Hefty wrote:
>>Moreover, the solution is one of:
>>- the patch you sent
>>- enforcing the ULP to call rdma_establish (or cm_establish for direct
>>CM consumers) else a repeatedly lost RTU case is not handled.
> 
> or both, or we do nothing and let the connection fail

After implementing rdma_establish(), the solutions that I see are:

* Dispatch COMM_EST to the IB CM.  This is transparent to the users.  A user 
cannot send a reply until they are told that the connection has been established.

* Provide rdma_establish().  As it turns out, clients may still need to wait 
until they are told that the connection has been established.  Before sends can 
be posted to the QP, it must be transitioned to RTS, which may sleep.

* Transition the QP to RTS before sending the REP.  This may be a slight spec 
violation.  COMM_EST events are not generated.  Users can reply to messages 
immediately.  A lost RTU will result in tearing down the connection.  A user 
could disconnect the connection before it's seen as established by the IB CM, 
which isn't handled currently.

* Combine the previous two solutions.  Rdma_establish() would set the connection 
state, but the QP is already in RTS.

The "best" solution is debatable, but I'm leaning towards the last option.

Also note that in all cases there's a race where the IB CM can time out a 
connection at the same time that a message shows up at the receive queue.

- Sean




More information about the general mailing list