]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: Call trace_sock_exceed_buf_limit() for memcg failure with SK_MEM_RECV.
authorKuniyuki Iwashima <kuniyu@google.com>
Fri, 15 Aug 2025 20:16:12 +0000 (20:16 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 3 Dec 2025 11:45:10 +0000 (12:45 +0100)
[ Upstream commit 9d85c565a7b7c78b732393c02bcaa4d5c275fe58 ]

Initially, trace_sock_exceed_buf_limit() was invoked when
__sk_mem_raise_allocated() failed due to the memcg limit or the
global limit.

However, commit d6f19938eb031 ("net: expose sk wmem in
sock_exceed_buf_limit tracepoint") somehow suppressed the event
only when memcg failed to charge for SK_MEM_RECV, although the
memcg failure for SK_MEM_SEND still triggers the event.

Let's restore the event for SK_MEM_RECV.

Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Shakeel Butt <shakeel.butt@linux.dev>
Link: https://patch.msgid.link/20250815201712.1745332-5-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/core/sock.c

index 54f9ad391f895a606cc542cf5e8a9feec95dacb3..a737cea1835f395c4d87b0c21a10e9454cf6aa0f 100644 (file)
@@ -2590,8 +2590,7 @@ suppress_allocation:
                        return 1;
        }
 
-       if (kind == SK_MEM_SEND || (kind == SK_MEM_RECV && charged))
-               trace_sock_exceed_buf_limit(sk, prot, allocated, kind);
+       trace_sock_exceed_buf_limit(sk, prot, allocated, kind);
 
        sk_memory_allocated_sub(sk, amt);