Message ID | 20240701225349.3395580-1-zijianzhang@bytedance.com (mailing list archive) |
---|---|
Headers | show |
Series | fix OOM and order check in msg_zerocopy selftest | expand |
Hello: This series was applied to netdev/net.git (main) by Jakub Kicinski <kuba@kernel.org>: On Mon, 1 Jul 2024 22:53:47 +0000 you wrote: > From: Zijian Zhang <zijianzhang@bytedance.com> > > In selftests/net/msg_zerocopy.c, it has a while loop keeps calling sendmsg > on a socket with MSG_ZEROCOPY flag, and it will recv the notifications > until the socket is not writable. Typically, it will start the receiving > process after around 30+ sendmsgs. However, as the introduction of commit > dfa2f0483360 ("tcp: get rid of sysctl_tcp_adv_win_scale"), the sender is > always writable and does not get any chance to run recv notifications. > The selftest always exits with OUT_OF_MEMORY because the memory used by > opt_skb exceeds the net.core.optmem_max. Meanwhile, it could be set to a > different value to trigger OOM on older kernels too. > > [...] Here is the summary with links: - [net,1/2] selftests: fix OOM in msg_zerocopy selftest https://git.kernel.org/netdev/net/c/af2b7e5b741a - [net,2/2] selftests: make order checking verbose in msg_zerocopy selftest https://git.kernel.org/netdev/net/c/7d6d8f0c8b70 You are awesome, thank you!
From: Zijian Zhang <zijianzhang@bytedance.com> In selftests/net/msg_zerocopy.c, it has a while loop keeps calling sendmsg on a socket with MSG_ZEROCOPY flag, and it will recv the notifications until the socket is not writable. Typically, it will start the receiving process after around 30+ sendmsgs. However, as the introduction of commit dfa2f0483360 ("tcp: get rid of sysctl_tcp_adv_win_scale"), the sender is always writable and does not get any chance to run recv notifications. The selftest always exits with OUT_OF_MEMORY because the memory used by opt_skb exceeds the net.core.optmem_max. Meanwhile, it could be set to a different value to trigger OOM on older kernels too. Thus, we introduce "cfg_notification_limit" to force sender to receive notifications after some number of sendmsgs. And, we find that when lock debugging is on, notifications may not come in order. Thus, we have order checking outputs managed by cfg_verbose, to avoid too many outputs in this case. Zijian Zhang (2): selftests: fix OOM in msg_zerocopy selftest selftests: make order checking verbose in msg_zerocopy selftest tools/testing/selftests/net/msg_zerocopy.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)