On Sun, Dec 10, 2017 at 8:55 PM, Eric Dumazet <eduma...@google.com> wrote: > Back in linux-3.13 (commit b0983d3c9b13 ("tcp: fix dynamic right sizing")) > I addressed the pressing issues we had with receiver autotuning. > > But DRS suffers from extra latencies caused by rcv_rtt_est.rtt_us > drifts. One common problem happens during slow start, since the > apparent RTT measured by the receiver can be inflated by ~50%, > at the end of one packet train. > > Also, a single drop can delay read() calls by one RTT, meaning > tcp_rcv_space_adjust() can be called one RTT too late. > > By replacing the tri-modal heuristic with a continuous function, > we can offset the effects of not growing 'at the optimal time'. > > The curve of the function matches prior behavior if the space > increased by 25% and 50% exactly. > > Cost of added multiply/divide is small, considering a TCP flow > typically would run this part of the code few times in its life. > > I tested this patch with 100 ms RTT / 1% loss link, 100 runs > of (netperf -l 5), and got an average throughput of 4600 Mbit > instead of 1700 Mbit. > > Signed-off-by: Eric Dumazet <eduma...@google.com> > Acked-by: Soheil Hassas Yeganeh <soh...@google.com> > Acked-by: Wei Wang <wei...@google.com> > ---
Acked-by: Neal Cardwell <ncardw...@google.com> Thanks, Eric! neal