[openib-general] [CM] possible problem with crossing DREQs.

Libor Michalek libor at topspin.com
Mon Jun 13 10:34:00 PDT 2005


On Fri, Jun 10, 2005 at 09:04:55AM -0400, Hal Rosenstock wrote:
> On Thu, 2005-06-09 at 15:47, Sean Hefty wrote: 
> > >  I'm seeing an unusual problem when both halves of a connection
> > >actively disconnect at the same time. Each connection peer issues
> > >a DREQ at the same time, next each receive the DREQ and responds
> > >with a DREP, and finally each connection gets a callback for the
> > >transition to the idle state. However, at this point it appears
> > >that each CM keeps retransmitting DREQ requests, which then seems
> > >to interfere with new connection establishment.
> > 
> > I think that I understand what's happening.  Receiving the DREQ
> > changed the state of the cm_id, but did not cancel the previous send.
> > 
> > I'm actually out on vacation for a little over two weeks (and will
> > be totally away from e-mail after Friday), but something
> > like the patch below might fix the issue.  (Note that I didn't test /
> > compile this.)  If it does work for you, feel free to commit it.
> 
> This works for me. My test case is a little different. It is repeated
> loopback kdapl quit tests but it does resolve the same problem. I am
> comitting this change. Thanks.

  This change fixed my problem as well. I'm commiting the following
patch which removes a SDP work around for the original problem.


-Libor

Index: infiniband/ulp/sdp/sdp_rcvd.c
===================================================================
--- infiniband/ulp/sdp/sdp_rcvd.c	(revision 2588)
+++ infiniband/ulp/sdp/sdp_rcvd.c	(working copy)
@@ -56,7 +56,6 @@
 	case SDP_CONN_ST_DIS_SENT_1:
 		SDP_CONN_ST_SET(conn, SDP_CONN_ST_TIME_WAIT_1);
 		band = POLL_HUP;
-#if 0 /* crossing DREQs appear not to work... */
 		/*
 		 * Begin IB/CM disconnect
 		 */
@@ -72,7 +71,7 @@
 			if (result != -EPROTO)
 				goto error;
 		}
-#endif
+
 		break;
 	default:
 		sdp_warn("Disconnect rcvd, unexpected state. <%d> <%04x>",



More information about the general mailing list