Rx: raise rx_minPeerTimeout to 20ms
authorJeffrey Altman <jaltman@your-file-system.com>
Sat, 2 Oct 2010 03:47:11 +0000 (23:47 -0400)
committerDerrick Brashear <shadow@dementia.org>
Sat, 2 Oct 2010 17:18:09 +0000 (10:18 -0700)
At 2ms it is possible for the packet we are sending to be resent
just about immediately as the retryTime computation occurs before
the send takes place and not afterwards.  If the network send blocks,
the retryTime may have already expired.

We do not want rx_minPeerTimeout to be too large though because the
value will end up being used as the backoff time period when the
actual RTT for the connection is less than the rx_minPeerTimeout
value.  Extensive testing shows 20ms to be an adequate compromise
that avoids the vast majority of unnecessary resends without
unnecessarily slowing down the connection if a packet is in fact
lost.

Change-Id: I87248ec1cff6a4d0862da0239d4c203024a783b6
Reviewed-on: http://gerrit.openafs.org/2881
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/rx/rx_globals.h

index bc1d158..37d7bad 100644 (file)
@@ -124,7 +124,7 @@ EXT int rx_BusyError GLOBALSINIT(-1);
 #define RX_FAST_ACK_RATE 1     /* as of 3.4, ask for an ack every
                                 * other packet. */
 
-EXT int rx_minPeerTimeout GLOBALSINIT(2); /* in milliseconds */
+EXT int rx_minPeerTimeout GLOBALSINIT(20);      /* in milliseconds */
 EXT int rx_minWindow GLOBALSINIT(1);
 EXT int rx_maxWindow GLOBALSINIT(RX_MAXACKS);   /* must ack what we receive */
 EXT int rx_initReceiveWindow GLOBALSINIT(16);  /* how much to accept */