OpenAFS Master Repository branch, openafs-stable-1_6_x, updated. openafs-stable-1_6_0pre6-26-g80ba47c

Gerrit Code Review gerrit@openafs.org
Thu, 7 Jul 2011 07:06:25 -0700 (PDT)


The following commit has been merged in the openafs-stable-1_6_x branch:
commit e8801635a41f83bc6bb438a2f33807d7ffeb6430
Author: Simon Wilkinson <sxw@your-file-system.com>
Date:   Fri Jun 17 22:06:54 2011 +0100

    rx: Compute smoothed RTT per call, not per peer.
    
    RX uses the TCP RTT smoothing algorithm as described in RFC2988.
    However, the TCP algorithm is designed to accept samples from a
    single connection, accepting a new sample once per RTT.
    RFC2988 suggests that "when multiple samples are taken
    per RTT the [ alogrithm ] may keep an inadequate RTT history."
    
    In RX's implementation, we use a single instance of this alogrithm
    per peer, and input all of the samples from all of the active calls
    and connections into this same instance. This leads to us taking
    a significantly (potentially many magnitudes) larger number of samples
    per RTT, and rapidly losing the RTT history. With RX's implementation,
    short lived network events may easily bias the RTT, and cause large
    numbers of packets to time out.
    
    This change fixes this by moving the RTT calculation onto a per call
    basis. We still update the peer with our caclulated value, so that new
    calls may be created with an RTT corresponding to the current value for
    the connection, rather than having to start high and converge downwards.
    
    (cherry picked from commit 39484c6e57cf993a713b4a989d1c0c227e6f496c)
    Reviewed-on: http://gerrit.openafs.org/4861
    Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>
    Tested-by: Derrick Brashear <shadow@dementia.org>
    
    Change-Id: I5b33323ceed7231bd70e43284d83dfe1db144188
    Reviewed-on: http://gerrit.openafs.org/4916
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Derrick Brashear <shadow@dementia.org>

 src/rx/rx.c              |   78 +++++++++++++++++++++++++++++-----------------
 src/rx/rx.h              |    4 ++-
 src/rx/rx_kcommon.c      |   22 +++++--------
 src/rx/rx_packet.c       |    2 -
 src/rx/rx_prototypes.h   |    1 +
 src/rx/rx_user.c         |   13 +++----
 src/rx/test/testclient.c |    3 +-
 7 files changed, 68 insertions(+), 55 deletions(-)

-- 
OpenAFS Master Repository