From: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
To: netdev@vger.kernel.org
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
"Jason Wang" <jasowang@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
"Jakub Kicinski" <kuba@kernel.org>,
"Björn Töpel" <bjorn@kernel.org>,
"Magnus Karlsson" <magnus.karlsson@intel.com>,
"Jonathan Lemon" <jonathan.lemon@gmail.com>,
"Alexei Starovoitov" <ast@kernel.org>,
"Daniel Borkmann" <daniel@iogearbox.net>,
"Jesper Dangaard Brouer" <hawk@kernel.org>,
"John Fastabend" <john.fastabend@gmail.com>,
"Andrii Nakryiko" <andrii@kernel.org>,
"Martin KaFai Lau" <kafai@fb.com>,
"Song Liu" <songliubraving@fb.com>, "Yonghong Song" <yhs@fb.com>,
"KP Singh" <kpsingh@kernel.org>,
virtualization@lists.linux-foundation.org, bpf@vger.kernel.org
Subject: [PATCH net-next v3 0/8] virtio-net support xdp socket zero copy xmit
Date: Wed, 31 Mar 2021 15:11:31 +0800 [thread overview]
Message-ID: <20210331071139.15473-1-xuanzhuo@linux.alibaba.com> (raw)
XDP socket is an excellent by pass kernel network transmission framework. The
zero copy feature of xsk (XDP socket) needs to be supported by the driver. The
performance of zero copy is very good. mlx5 and intel ixgbe already support this
feature, This patch set allows virtio-net to support xsk's zerocopy xmit
feature.
And xsk's zerocopy rx has made major changes to virtio-net, and I hope to submit
it after this patch set are received.
Compared with other drivers, virtio-net does not directly obtain the dma
address, so I first obtain the xsk page, and then pass the page to virtio.
When recycling the sent packets, we have to distinguish between skb and xdp.
Now we have to distinguish between skb, xdp, xsk.
#0 #1 made some adjustments to xsk.
---------------- Performance Testing ------------
The udp package tool implemented by the interface of xsk vs sockperf(kernel udp)
for performance testing:
xsk zero copy xmit in virtio-net:
CPU PPS MSGSIZE vhost-cpu
7.9% 511804 64 100%
13.3%% 484373 1500 100%
sockperf:
CPU PPS MSGSIZE vhost-cpu
100% 375227 64 89.1%
100% 307322 1500 81.5%
Xuan Zhuo (8):
xsk: XDP_SETUP_XSK_POOL support option check_dma
xsk: support get page by addr
virtio-net: xsk zero copy xmit setup
virtio-net: xsk zero copy xmit implement wakeup and xmit
virtio-net: xsk zero copy xmit support xsk unaligned mode
virtio-net: xsk zero copy xmit kick by threshold
virtio-net: poll tx call xsk zerocopy xmit
virtio-net: free old xmit handle xsk
drivers/net/virtio_net.c | 449 +++++++++++++++++++++++++++++++++----
include/linux/netdevice.h | 1 +
include/net/xdp_sock_drv.h | 11 +
net/xdp/xsk_buff_pool.c | 3 +-
4 files changed, 415 insertions(+), 49 deletions(-)
--
2.31.0
next reply other threads:[~2021-03-31 7:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-31 7:11 Xuan Zhuo [this message]
2021-03-31 7:11 ` [PATCH net-next v3 1/8] xsk: XDP_SETUP_XSK_POOL support option check_dma Xuan Zhuo
2021-03-31 7:11 ` [PATCH net-next v3 2/8] xsk: support get page by addr Xuan Zhuo
2021-03-31 7:11 ` [PATCH net-next v3 3/8] virtio-net: xsk zero copy xmit setup Xuan Zhuo
2021-04-06 4:27 ` Jason Wang
2021-04-07 10:02 ` Magnus Karlsson
2021-03-31 7:11 ` [PATCH net-next v3 4/8] virtio-net: xsk zero copy xmit implement wakeup and xmit Xuan Zhuo
2021-04-06 6:19 ` Jason Wang
2021-04-07 9:56 ` Magnus Karlsson
2021-03-31 7:11 ` [PATCH net-next v3 5/8] virtio-net: xsk zero copy xmit support xsk unaligned mode Xuan Zhuo
2021-04-06 6:55 ` Jason Wang
2021-03-31 7:11 ` [PATCH net-next v3 6/8] virtio-net: xsk zero copy xmit kick by threshold Xuan Zhuo
2021-04-06 6:59 ` Jason Wang
2021-03-31 7:11 ` [PATCH net-next v3 7/8] virtio-net: poll tx call xsk zerocopy xmit Xuan Zhuo
2021-04-06 7:03 ` Jason Wang
2021-03-31 7:11 ` [PATCH net-next v3 8/8] virtio-net: free old xmit handle xsk Xuan Zhuo
2021-04-06 7:16 ` Jason Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210331071139.15473-1-xuanzhuo@linux.alibaba.com \
--to=xuanzhuo@linux.alibaba.com \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bjorn@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=hawk@kernel.org \
--cc=jasowang@redhat.com \
--cc=john.fastabend@gmail.com \
--cc=jonathan.lemon@gmail.com \
--cc=kafai@fb.com \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=magnus.karlsson@intel.com \
--cc=mst@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=songliubraving@fb.com \
--cc=virtualization@lists.linux-foundation.org \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).