drivers/net/tun.c | 177 ++++++++++++++++++++++++++++++++++++++-- drivers/vhost/net.c | 21 +++-- include/linux/if_tun.h | 32 ++++++++ net/xdp/xsk_buff_pool.c | 7 -- 4 files changed, 220 insertions(+), 17 deletions(-)
Hi all: Now, some drivers support the zero-copy feature of AF_XDP sockets, which can significantly reduce CPU utilization for XDP programs. This patch set allows TUN to also support the AF_XDP Tx zero-copy feature. It is based on Linux 6.8.0+(openEuler 23.09) and has successfully passed Netperf and Netserver stress testing with multiple streams between VM A and VM B, using AF_XDP and OVS. The performance testing was performed on a Intel E5-2620 2.40GHz machine. Traffic were generated/send through TUN(testpmd txonly with AF_XDP) to VM (testpmd rxonly in guest). +------+---------+---------+---------+ | | copy |zero-copy| speedup | +------+---------+---------+---------+ | UDP | Mpps | Mpps | % | | 64 | 2.5 | 4.0 | 60% | | 512 | 2.1 | 3.6 | 71% | | 1024 | 1.9 | 3.3 | 73% | +------+---------+---------+---------+ Yunjian Wang (3): xsk: Remove non-zero 'dma_page' check in xp_assign_dev vhost_net: Call peek_len when using xdp tun: AF_XDP Tx zero-copy support drivers/net/tun.c | 177 ++++++++++++++++++++++++++++++++++++++-- drivers/vhost/net.c | 21 +++-- include/linux/if_tun.h | 32 ++++++++ net/xdp/xsk_buff_pool.c | 7 -- 4 files changed, 220 insertions(+), 17 deletions(-) -- 2.41.0
On Wed, Feb 28, 2024 at 07:04:41PM +0800, Yunjian Wang wrote: > Hi all: > > Now, some drivers support the zero-copy feature of AF_XDP sockets, > which can significantly reduce CPU utilization for XDP programs. > > This patch set allows TUN to also support the AF_XDP Tx zero-copy > feature. It is based on Linux 6.8.0+(openEuler 23.09) and has > successfully passed Netperf and Netserver stress testing with > multiple streams between VM A and VM B, using AF_XDP and OVS. > > The performance testing was performed on a Intel E5-2620 2.40GHz > machine. Traffic were generated/send through TUN(testpmd txonly > with AF_XDP) to VM (testpmd rxonly in guest). > > +------+---------+---------+---------+ > | | copy |zero-copy| speedup | > +------+---------+---------+---------+ > | UDP | Mpps | Mpps | % | > | 64 | 2.5 | 4.0 | 60% | > | 512 | 2.1 | 3.6 | 71% | > | 1024 | 1.9 | 3.3 | 73% | > +------+---------+---------+---------+ > > Yunjian Wang (3): > xsk: Remove non-zero 'dma_page' check in xp_assign_dev > vhost_net: Call peek_len when using xdp > tun: AF_XDP Tx zero-copy support threading broken pls repost. vhost bits look ok though: Acked-by: Michael S. Tsirkin <mst@redhat.com> > drivers/net/tun.c | 177 ++++++++++++++++++++++++++++++++++++++-- > drivers/vhost/net.c | 21 +++-- > include/linux/if_tun.h | 32 ++++++++ > net/xdp/xsk_buff_pool.c | 7 -- > 4 files changed, 220 insertions(+), 17 deletions(-) > > -- > 2.41.0
Wed, Feb 28, 2024 at 12:04:41PM CET, wangyunjian@huawei.com wrote: >Hi all: > >Now, some drivers support the zero-copy feature of AF_XDP sockets, >which can significantly reduce CPU utilization for XDP programs. > >This patch set allows TUN to also support the AF_XDP Tx zero-copy >feature. It is based on Linux 6.8.0+(openEuler 23.09) and has >successfully passed Netperf and Netserver stress testing with >multiple streams between VM A and VM B, using AF_XDP and OVS. > >The performance testing was performed on a Intel E5-2620 2.40GHz >machine. Traffic were generated/send through TUN(testpmd txonly >with AF_XDP) to VM (testpmd rxonly in guest). > >+------+---------+---------+---------+ >| | copy |zero-copy| speedup | >+------+---------+---------+---------+ >| UDP | Mpps | Mpps | % | >| 64 | 2.5 | 4.0 | 60% | >| 512 | 2.1 | 3.6 | 71% | >| 1024 | 1.9 | 3.3 | 73% | >+------+---------+---------+---------+ > >Yunjian Wang (3): > xsk: Remove non-zero 'dma_page' check in xp_assign_dev > vhost_net: Call peek_len when using xdp > tun: AF_XDP Tx zero-copy support Threading of the patchset seems to be broken. Did you by any chance send this with "--nothread" git-send-email option? pw seems to cope fine with this though. > > drivers/net/tun.c | 177 ++++++++++++++++++++++++++++++++++++++-- > drivers/vhost/net.c | 21 +++-- > include/linux/if_tun.h | 32 ++++++++ > net/xdp/xsk_buff_pool.c | 7 -- > 4 files changed, 220 insertions(+), 17 deletions(-) > >-- >2.41.0 > >
© 2016 - 2026 Red Hat, Inc.