Merge branch 'tcp-receive-side-improvements'
authorJakub Kicinski <kuba@kernel.org>
Thu, 15 May 2025 18:30:11 +0000 (11:30 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 15 May 2025 18:30:12 +0000 (11:30 -0700)
commit2da35e4b4df99d3dd29bacf0c054e6988013d4ec
treeb903298160aa31a09c0d70a56eaac6b1d2f6cf51
parentbebd7b262638af611a0e699ba37c43ec2238801b
parent572be9bf9d0d96242dd7977ce456009b6c690dce
Merge branch 'tcp-receive-side-improvements'

Eric Dumazet says:

====================
tcp: receive side improvements

We have set tcp_rmem[2] to 15 MB for about 8 years at Google,
but had some issues for high speed flows on very small RTT.

TCP rx autotuning has a tendency to overestimate the RTT,
thus tp->rcvq_space.space and sk->sk_rcvbuf.

This makes TCP receive queues much bigger than necessary,
to a point cpu caches are evicted before application can
copy the data, on cpus using DDIO.

This series aims to fix this.

- First patch adds tcp_rcvbuf_grow() tracepoint, which was very
  convenient to study the various issues fixed in this series.

- Seven patches fix receiver autotune issues.

- Two patches fix sender side issues.

- Final patch increases tcp_rmem[2] so that TCP speed over WAN
  can meet modern needs.

Tested on a 200Gbit NIC, average max throughput of a single flow:

Before:
 73593 Mbit.

After:
 122514 Mbit.
====================

Link: https://patch.msgid.link/20250513193919.1089692-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>