On Tue, Apr 25, 2017 at 1:15 PM, Eric Dumazet <eduma...@google.com> wrote: > Some devices or distributions use HZ=100 or HZ=250 > > TCP receive buffer autotuning has poor behavior caused by this choice. > Since autotuning happens after 4 ms or 10 ms, short distance flows > get their receive buffer tuned to a very high value, but after an initial > period where it was frozen to (too small) initial value. > > With tp->tcp_mstamp introduction, we can switch to high resolution > timestamps almost for free (at the expense of 8 additional bytes per > TCP structure) > > Note that some TCP stacks use usec TCP timestamps where this > patch makes even more sense : Many TCP flows have < 500 usec RTT. > Hopefully this finer TS option can be standardized soon. > > Tested: > HZ=100 kernel > ./netperf -H lpaa24 -t TCP_RR -l 1000 -- -r 10000,10000 & > > Peer without patch : > lpaa24:~# ss -tmi dst lpaa23 > ... > skmem:(r0,rb8388608,...) > rcv_rtt:10 rcv_space:3210000 minrtt:0.017 > > Peer with the patch : > lpaa23:~# ss -tmi dst lpaa24 > ... > skmem:(r0,rb428800,...) > rcv_rtt:0.069 rcv_space:30000 minrtt:0.017 > > We can see saner RCVBUF, and more precise rcv_rtt information. > > Signed-off-by: Eric Dumazet <eduma...@google.com> > Acked-by: Soheil Hassas Yeganeh <soh...@google.com>
Acked-by: Neal Cardwell <ncardw...@google.com> neal