Message ID | 20210527011155.10097-1-xiyou.wangcong@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | sock_map: some bug fixes and improvements | expand |
Cong Wang wrote: > From: Cong Wang <cong.wang@bytedance.com> > > This patchset contains a few bug fixes and improvements for sock_map. > > Patch 1 improves recvmsg() accuracy for UDP, patch 2 improves UDP > non-blocking read() by retrying on EAGAIN. With both of them, the > failure rate of the UDP test case goes down from 10% to 1%. > > Patch 3 is memory leak fix I posted, no change since v1. The rest > patches address similar memory leaks or improve error handling, > including one increases sk_drops counter for error cases. Please > check each patch description for more details. For the series. My initial concern about marking BPF drops as socket drops appears to be common so I guess lets do it. Acked-by: John Fastabend <john.fastabend@gmail.com> > > --- > v3: add another bug fix as patch 4 > update patch 5 accordingly > address John's review on the last patch > fix a few typos in patch descriptions > > v2: group all patches together > set max for retries of EAGAIN > > Cong Wang (8): > skmsg: improve udp_bpf_recvmsg() accuracy > selftests/bpf: Retry for EAGAIN in udp_redir_to_connected() > udp: fix a memory leak in udp_read_sock() > skmsg: clear skb redirect pointer before dropping it > skmsg: fix a memory leak in sk_psock_verdict_apply() > skmsg: teach sk_psock_verdict_apply() to return errors > skmsg: pass source psock to sk_psock_skb_redirect() > skmsg: increase sk->sk_drops when dropping packets > > include/linux/skmsg.h | 2 - > net/core/skmsg.c | 82 +++++++++---------- > net/ipv4/tcp_bpf.c | 24 +++++- > net/ipv4/udp.c | 2 + > net/ipv4/udp_bpf.c | 47 +++++++++-- > .../selftests/bpf/prog_tests/sockmap_listen.c | 7 +- > 6 files changed, 112 insertions(+), 52 deletions(-) > > -- > 2.25.1 >
From: Cong Wang <cong.wang@bytedance.com> This patchset contains a few bug fixes and improvements for sock_map. Patch 1 improves recvmsg() accuracy for UDP, patch 2 improves UDP non-blocking read() by retrying on EAGAIN. With both of them, the failure rate of the UDP test case goes down from 10% to 1%. Patch 3 is memory leak fix I posted, no change since v1. The rest patches address similar memory leaks or improve error handling, including one increases sk_drops counter for error cases. Please check each patch description for more details. --- v3: add another bug fix as patch 4 update patch 5 accordingly address John's review on the last patch fix a few typos in patch descriptions v2: group all patches together set max for retries of EAGAIN Cong Wang (8): skmsg: improve udp_bpf_recvmsg() accuracy selftests/bpf: Retry for EAGAIN in udp_redir_to_connected() udp: fix a memory leak in udp_read_sock() skmsg: clear skb redirect pointer before dropping it skmsg: fix a memory leak in sk_psock_verdict_apply() skmsg: teach sk_psock_verdict_apply() to return errors skmsg: pass source psock to sk_psock_skb_redirect() skmsg: increase sk->sk_drops when dropping packets include/linux/skmsg.h | 2 - net/core/skmsg.c | 82 +++++++++---------- net/ipv4/tcp_bpf.c | 24 +++++- net/ipv4/udp.c | 2 + net/ipv4/udp_bpf.c | 47 +++++++++-- .../selftests/bpf/prog_tests/sockmap_listen.c | 7 +- 6 files changed, 112 insertions(+), 52 deletions(-)