udp: refine __udp_enqueue_schedule_skb() test
Commit 5a465a0da13e ("udp: Fix multiple wraparounds
of sk->sk_rmem_alloc.") allowed to slightly overshoot
sk->sk_rmem_alloc, when many cpus are trying
to feed packets to a common UDP socket.
This patch, combined with the following one reduces
false sharing on the victim socket under DDOS.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: David Ahern <dsahern@kernel.org>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://patch.msgid.link/20250916160951.541279-6-edumazet@google.com
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
b76543b21f
commit
9aaec660b5
@ -1739,8 +1739,8 @@ int __udp_enqueue_schedule_skb(struct sock *sk, struct sk_buff *skb)
|
||||
if (rcvbuf > INT_MAX >> 1)
|
||||
goto drop;
|
||||
|
||||
/* Always allow at least one packet for small buffer. */
|
||||
if (rmem > rcvbuf)
|
||||
/* Accept the packet if queue is empty. */
|
||||
if (rmem)
|
||||
goto drop;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user