diff options
| author | Eric Dumazet <edumazet@google.com> | 2025-05-13 22:39:12 +0300 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-06-27 13:11:30 +0300 |
| commit | 84c156a351459d9b0711d99131dcad714e31921b (patch) | |
| tree | 8d1dc4630fb8be2d0342d954157226d275c79d7a /include/linux | |
| parent | 89b20c406ea1aad40c1511013f211738e71bdaf3 (diff) | |
| download | linux-84c156a351459d9b0711d99131dcad714e31921b.tar.xz | |
tcp: add receive queue awareness in tcp_rcv_space_adjust()
[ Upstream commit ea33537d82921e71f852ea2ed985acc562125efe ]
If the application can not drain fast enough a TCP socket queue,
tcp_rcv_space_adjust() can overestimate tp->rcvq_space.space.
Then sk->sk_rcvbuf can grow and hit tcp_rmem[2] for no good reason.
Fix this by taking into acount the number of available bytes.
Keeping sk->sk_rcvbuf at the right size allows better cache efficiency.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Wei Wang <weiwan@google.com>
Link: https://patch.msgid.link/20250513193919.1089692-5-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/tcp.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/tcp.h b/include/linux/tcp.h index 6a5e08b937b3..5f56fa878013 100644 --- a/include/linux/tcp.h +++ b/include/linux/tcp.h @@ -336,7 +336,7 @@ struct tcp_sock { } rcv_rtt_est; /* Receiver queue space */ struct { - u32 space; + int space; u32 seq; u64 time; } rcvq_space; |
