Eric Dumazet
a54d51fb2d
udp: fix busy polling
...
Generic sk_busy_loop_end() only looks at sk->sk_receive_queue
for presence of packets.
Problem is that for UDP sockets after blamed commit, some packets
could be present in another queue: udp_sk(sk)->reader_queue
In some cases, a busy poller could spin until timeout expiration,
even if some packets are available in udp_sk(sk)->reader_queue.
v3: - make sk_busy_loop_end() nicer (Willem)
v2: - add a READ_ONCE(sk->sk_family) in sk_is_inet() to avoid KCSAN splats.
- add a sk_is_inet() check in sk_is_udp() (Willem feedback)
- add a sk_is_inet() check in sk_is_tcp().
Fixes: 2276f58ac5 ("udp: use a separate rx queue for packet reception")
Signed-off-by: Eric Dumazet <edumazet@google.com >
Reviewed-by: Paolo Abeni <pabeni@redhat.com >
Reviewed-by: Willem de Bruijn <willemb@google.com >
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com >
Signed-off-by: David S. Miller <davem@davemloft.net >
2024-01-21 18:09:30 +00:00
..
2024-01-18 11:37:24 -08:00
2024-01-04 17:01:13 +01:00
2024-01-18 15:16:57 -08:00
2024-01-04 17:02:49 +01:00
2024-01-15 18:41:29 +01:00
2024-01-14 23:00:50 +01:00
2024-01-11 14:19:23 -08:00
2024-01-18 16:44:03 -08:00
2024-01-02 17:54:05 +01:00
2024-01-18 17:29:01 -08:00
2024-01-10 16:43:55 -08:00
2024-01-10 16:13:57 -08:00
2024-01-17 16:47:17 -08:00
2024-01-04 16:00:41 +01:00
2024-01-18 16:22:43 -08:00
2024-01-02 16:51:39 -06:00
2024-01-04 15:19:17 +01:00
2024-01-03 11:31:12 +01:00
2024-01-11 13:58:04 -08:00
2024-01-11 13:58:04 -08:00
2024-01-03 21:08:25 -08:00
2024-01-04 20:31:34 -08:00
2024-01-17 20:20:05 -08:00
2023-12-29 11:58:36 -08:00
2024-01-09 11:18:47 -08:00
2023-12-29 12:22:31 -08:00
2023-12-29 12:22:26 -08:00
2024-01-09 15:41:23 -08:00
2024-01-18 15:16:57 -08:00
2024-01-18 15:16:57 -08:00
2024-01-05 07:58:19 -08:00
2024-01-18 09:48:40 -08:00
2023-12-29 01:22:59 +00:00
2023-12-29 01:25:58 +09:00
2024-01-08 09:36:55 +09:00
2024-01-09 13:24:06 -08:00
2024-01-12 15:34:50 +01:00
2024-01-02 11:25:28 +01:00
2024-01-02 11:25:28 +01:00
2023-12-29 11:58:42 -08:00
2024-01-08 15:27:15 -08:00
2024-01-18 21:10:43 +01:00
2024-01-02 12:46:10 +00:00
2024-01-11 14:19:23 -08:00
2024-01-18 15:28:15 -08:00
2023-12-26 20:24:33 +00:00
2024-01-04 23:42:21 -05:00
2023-12-29 11:58:44 -08:00
2023-12-29 11:58:25 -08:00
2024-01-10 16:43:55 -08:00
2024-01-04 14:37:17 +01:00
2024-01-05 10:17:44 -08:00
2023-12-29 11:58:39 -08:00
2024-01-18 15:16:57 -08:00
2024-01-10 08:45:22 -08:00
2024-01-08 15:27:15 -08:00
2024-01-10 18:00:18 -08:00
2024-01-04 17:01:14 +01:00
2024-01-10 16:43:55 -08:00
2024-01-04 16:05:47 -08:00
2024-01-17 12:02:49 +01:00
2024-01-07 17:54:26 -05:00
2024-01-04 10:47:56 -05:00
2024-01-03 13:33:59 +01:00
2024-01-04 17:01:13 +01:00
2024-01-04 17:01:13 +01:00
2023-12-30 10:25:51 -08:00
2024-01-08 15:27:15 -08:00
2024-01-02 13:16:29 -05:00
2024-01-12 11:55:28 -08:00
2024-01-15 12:10:41 -06:00
2024-01-15 12:10:41 -06:00
2024-01-18 16:22:43 -08:00
2024-01-17 10:50:46 -08:00
2024-01-04 18:06:46 -08:00
2024-01-04 11:25:50 +00:00
2024-01-04 14:35:57 +01:00
2024-01-03 16:21:42 +05:30
2024-01-10 20:59:20 +01:00
2024-01-09 15:00:09 +01:00
2023-12-27 11:49:56 -05:00
2024-01-17 16:47:17 -08:00
2024-01-05 09:33:16 +01:00
2023-12-27 11:50:20 -05:00
2024-01-02 09:33:18 +01:00
2023-12-27 11:49:56 -05:00
2024-01-05 10:17:43 -08:00
2023-12-27 11:49:56 -05:00
2024-01-18 15:16:57 -08:00
2024-01-18 09:22:02 -05:00
2024-01-04 16:20:05 +01:00
2024-01-04 16:05:47 -08:00
2024-01-17 12:02:49 +01:00
2024-01-21 18:09:30 +00:00
2024-01-09 11:18:47 -08:00
2024-01-10 16:43:55 -08:00
2023-12-29 11:58:42 -08:00
2024-01-07 17:12:11 -08:00
2023-12-29 11:58:32 -08:00
2024-01-13 13:06:25 +01:00
2023-12-28 05:02:42 -08:00
2024-01-17 14:47:33 -08:00
2024-01-18 11:37:24 -08:00
2024-01-10 16:43:55 -08:00
2024-01-04 16:06:32 +01:00
2023-12-29 11:58:24 -08:00
2024-01-13 18:06:23 +00:00
2024-01-05 10:17:47 -08:00
2024-01-02 13:31:48 +01:00
2024-01-10 16:43:55 -08:00
2023-12-29 20:22:11 -08:00