netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/10] tcp: do not use tcp_time_stamp for rcv autotuning
@ 2017-04-25 17:15 Eric Dumazet
  2017-04-25 17:15 ` [PATCH net-next 01/10] tcp: add tp->tcp_mstamp field Eric Dumazet
                   ` (10 more replies)
  0 siblings, 11 replies; 26+ messages in thread
From: Eric Dumazet @ 2017-04-25 17:15 UTC (permalink / raw)
  To: David S . Miller
  Cc: netdev, Soheil Hassas Yeganeh, Eric Dumazet, Eric Dumazet

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.

Eric Dumazet (10):
  tcp: add tp->tcp_mstamp field
  tcp: do not pass timestamp to tcp_rack_detect_loss()
  tcp: do not pass timestamp to tcp_rack_mark_lost()
  tcp: do not pass timestamp to tcp_rack_identify_loss()
  tcp: do not pass timestamp to tcp_fastretrans_alert()
  tcp: do not pass timestamp to tcp_rate_gen()
  tcp: do not pass timestamp to tcp_rack_advance()
  tcp: use tp->tcp_mstamp in tcp_clean_rtx_queue()
  tcp: remove ack_time from struct tcp_sacktag_state
  tcp: switch rcv_rtt_est and rcvq_space to high resolution timestamps

 include/linux/tcp.h     | 13 +++++-----
 include/net/tcp.h       |  7 +++--
 net/ipv4/tcp.c          |  2 +-
 net/ipv4/tcp_input.c    | 69 +++++++++++++++++++++++--------------------------
 net/ipv4/tcp_rate.c     |  7 ++---
 net/ipv4/tcp_recovery.c | 18 +++++--------
 6 files changed, 55 insertions(+), 61 deletions(-)

-- 
2.13.0.rc0.306.g87b477812d-goog

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2017-04-26 23:03 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-25 17:15 [PATCH net-next 00/10] tcp: do not use tcp_time_stamp for rcv autotuning Eric Dumazet
2017-04-25 17:15 ` [PATCH net-next 01/10] tcp: add tp->tcp_mstamp field Eric Dumazet
2017-04-25 17:48   ` Soheil Hassas Yeganeh
2017-04-25 17:49   ` Neal Cardwell
2017-04-25 21:27   ` Yuchung Cheng
2017-04-25 21:33     ` Eric Dumazet
2017-04-25 17:15 ` [PATCH net-next 02/10] tcp: do not pass timestamp to tcp_rack_detect_loss() Eric Dumazet
2017-04-25 17:51   ` Neal Cardwell
2017-04-26 23:03   ` Eric Dumazet
2017-04-25 17:15 ` [PATCH net-next 03/10] tcp: do not pass timestamp to tcp_rack_mark_lost() Eric Dumazet
2017-04-25 17:51   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 04/10] tcp: do not pass timestamp to tcp_rack_identify_loss() Eric Dumazet
2017-04-25 17:52   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 05/10] tcp: do not pass timestamp to tcp_fastretrans_alert() Eric Dumazet
2017-04-25 17:52   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 06/10] tcp: do not pass timestamp to tcp_rate_gen() Eric Dumazet
2017-04-25 17:53   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 07/10] tcp: do not pass timestamp to tcp_rack_advance() Eric Dumazet
2017-04-25 17:53   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 08/10] tcp: use tp->tcp_mstamp in tcp_clean_rtx_queue() Eric Dumazet
2017-04-25 17:53   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 09/10] tcp: remove ack_time from struct tcp_sacktag_state Eric Dumazet
2017-04-25 17:53   ` Neal Cardwell
2017-04-25 17:15 ` [PATCH net-next 10/10] tcp: switch rcv_rtt_est and rcvq_space to high resolution timestamps Eric Dumazet
2017-04-25 17:54   ` Neal Cardwell
2017-04-26 18:44 ` [PATCH net-next 00/10] tcp: do not use tcp_time_stamp for rcv autotuning David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).