Message ID | 20240112190530.3751661-1-martin.lau@linux.dev (mailing list archive) |
---|---|
Headers | show |
Series | bpf: Fix backward progress bug in bpf_iter_udp | expand |
Hello: This series was applied to bpf/bpf.git (master) by Alexei Starovoitov <ast@kernel.org>: On Fri, 12 Jan 2024 11:05:27 -0800 you wrote: > From: Martin KaFai Lau <martin.lau@kernel.org> > > This patch set fixes an issue in bpf_iter_udp that makes backward > progress and prevents the user space process from finishing. There is > a test at the end to reproduce the bug. > > Please see individual patches for details. > > [...] Here is the summary with links: - [v3,bpf,1/3] bpf: iter_udp: Retry with a larger batch size without going back to the previous bucket https://git.kernel.org/bpf/bpf/c/19ca0823f6ea - [v3,bpf,2/3] bpf: Avoid iter->offset making backward progress in bpf_iter_udp https://git.kernel.org/bpf/bpf/c/2242fd537fab - [v3,bpf,3/3] selftests/bpf: Test udp and tcp iter batching https://git.kernel.org/bpf/bpf/c/dbd7db7787ba You are awesome, thank you!
From: Martin KaFai Lau <martin.lau@kernel.org> This patch set fixes an issue in bpf_iter_udp that makes backward progress and prevents the user space process from finishing. There is a test at the end to reproduce the bug. Please see individual patches for details. v3: - Fixed the iter_fd check and local_port check in the patch 3 selftest. (Yonghong) - Moved jhash2 to test_jhash.h in the patch 3. (Yonghong) - Added explanation in the bucket selection in the patch 3. (Yonghong) v2: - Added patch 1 to fix another bug that goes back to the previous bucket - Simplify the fix in patch 2 to always reset iter->offset to 0 - Add a test case to close all udp_sk in a bucket while in the middle of the iteration. Martin KaFai Lau (3): bpf: iter_udp: Retry with a larger batch size without going back to the previous bucket bpf: Avoid iter->offset making backward progress in bpf_iter_udp selftests/bpf: Test udp and tcp iter batching net/ipv4/udp.c | 22 ++- .../bpf/prog_tests/sock_iter_batch.c | 135 ++++++++++++++++++ .../selftests/bpf/progs/bpf_tracing_net.h | 3 + .../selftests/bpf/progs/sock_iter_batch.c | 91 ++++++++++++ .../testing/selftests/bpf/progs/test_jhash.h | 31 ++++ 5 files changed, 270 insertions(+), 12 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/sock_iter_batch.c create mode 100644 tools/testing/selftests/bpf/progs/sock_iter_batch.c