[PATCH bpf-next 0/2] bpf, sockmap: Fix udp_bpf_recvmsg() spinning on backlog-only ingress
From: chenyuan_fl
Date: Tue Sep 29 2026 - 04:40:37 EST
From: Yuan Chen <chenyuan@xxxxxxxxxx>
udp_bpf_recvmsg() re-arms its receive loop on backlog-only skbs that
sk_msg_recvmsg() can never consume: whenever the backlog stays
populated, the loop re-arms on the same skb forever and recvmsg()
spins while holding the socket lock instead of sleeping.
Patch 1 aligns the re-arm condition with TCP and unix_bpf_recvmsg();
patch 2 adds a selftest that reproduces the hang.
Yuan Chen (2):
bpf, sockmap: Fix udp_bpf_recvmsg() spinning on backlog-only ingress
selftests/bpf: Add a test for udp_bpf_recvmsg() with a stuck backlog
net/ipv4/udp_bpf.c | 2 +-
.../bpf/prog_tests/sockmap_udp_backlog.c | 141 ++++++++++++++++++
.../bpf/progs/test_sockmap_udp_backlog.c | 21 +++
3 files changed, 163 insertions(+), 1 deletion(-)
create mode 100644 tools/testing/selftests/bpf/prog_tests/sockmap_udp_backlog.c
create mode 100644 tools/testing/selftests/bpf/progs/test_sockmap_udp_backlog.c
--
2.54.0