• David Howells's avatar
    rxrpc: Fix congestion management · 1fc4fa2a
    David Howells authored
    rxrpc has a problem in its congestion management in that it saves the
    congestion window size (cwnd) from one call to another, but if this is 0 at
    the time is saved, then the next call may not actually manage to ever
    transmit anything.
    
    To this end:
    
     (1) Don't save cwnd between calls, but rather reset back down to the
         initial cwnd and re-enter slow-start if data transmission is idle for
         more than an RTT.
    
     (2) Preserve ssthresh instead, as that is a handy estimate of pipe
         capacity.  Knowing roughly when to stop slow start and enter
         congestion avoidance can reduce the tendency to overshoot and drop
         larger amounts of packets when probing.
    
    In future, cwind growth also needs to be constrained when the window isn't
    being filled due to being application limited.
    Reported-by: default avatarSimon Wilkinson <sxw@auristor.com>
    cc: Marc Dionne <marc.dionne@auristor.com>
    cc: linux-afs@lists.infradead.org
    1fc4fa2a
peer_object.c 12.5 KB