Merge branch 'tcp-do-not-use-tcp_time_stamp-for-rcv-autotuning'
authorDavid S. Miller <davem@davemloft.net>
Wed, 26 Apr 2017 18:44:39 +0000 (14:44 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Apr 2017 18:44:39 +0000 (14:44 -0400)
commit4629498336e48516f5a03ee2788701f1d3f20168
tree7ceebdc356adf410a9d78bd51d7e200697d19658
parent038a3e858de4e3ddf42c330a22b7efcddbc0a81a
parent645f4c6f2ebd040688cc2a5f626ffc909e66ccf2
Merge branch 'tcp-do-not-use-tcp_time_stamp-for-rcv-autotuning'

Eric Dumazet says:

====================
tcp: do not use tcp_time_stamp for rcv autotuning

Some devices or linux 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 BBR (or other CC allowing to increase BDP), we are willing to
increase tcp_rmem[2], but this receive autotuning defect is a blocker
for hosts dealing with gazillions of TCP flows in the data centers,
since many of them have inflated RCVBUF. Risk of OOM is too high.

Note that TSO autodefer, tcp cubic, and TCP TS options (RFC 7323)
also suffer from our dependency to jiffies (via tcp_time_stamp).

We have ongoing efforts to improve all that in the future.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>