diff options
| author | Jakub Kicinski <[email protected]> | 2025-02-17 23:29:05 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-02-19 00:02:18 +0000 |
| commit | f5da7c45188eea71394bf445655cae2df88a7788 (patch) | |
| tree | 563f7b5a52f66929a8e35e188c7493e679acfa48 /net/unix/af_unix.c | |
| parent | Merge branch 'sockmap-vsock-for-connectible-sockets-allow-only-connected' (diff) | |
| download | kernel-f5da7c45188eea71394bf445655cae2df88a7788.tar.gz kernel-f5da7c45188eea71394bf445655cae2df88a7788.zip | |
tcp: adjust rcvq_space after updating scaling ratio
Since commit under Fixes we set the window clamp in accordance
to newly measured rcvbuf scaling_ratio. If the scaling_ratio
decreased significantly we may put ourselves in a situation
where windows become smaller than rcvq_space, preventing
tcp_rcv_space_adjust() from increasing rcvbuf.
The significant decrease of scaling_ratio is far more likely
since commit 697a6c8cec03 ("tcp: increase the default TCP scaling ratio"),
which increased the "default" scaling ratio from ~30% to 50%.
Hitting the bad condition depends a lot on TCP tuning, and
drivers at play. One of Meta's workloads hits it reliably
under following conditions:
- default rcvbuf of 125k
- sender MTU 1500, receiver MTU 5000
- driver settles on scaling_ratio of 78 for the config above.
Initial rcvq_space gets calculated as TCP_INIT_CWND * tp->advmss
(10 * 5k = 50k). Once we find out the true scaling ratio and
MSS we clamp the windows to 38k. Triggering the condition also
depends on the message sequence of this workload. I can't repro
the problem with simple iperf or TCP_RR-style tests.
Fixes: a2cbb1603943 ("tcp: Update window clamping condition")
Reviewed-by: Eric Dumazet <[email protected]>
Reviewed-by: Neal Cardwell <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions
