Re: [RFC PATCH net-next 00/12] XDP batching for TUN/vhost_net
flat view
From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2018-05-25 17:53:13
Also in:
kvm, lkml
On Mon, May 21, 2018 at 05:04:21PM +0800, Jason Wang wrote:
Hi all: We do not support XDP batching for TUN since it can only receive one packet a time from vhost_net. This series tries to remove this limitation by: - introduce a TUN specific msg_control that can hold a pointer to an array of XDP buffs - try copy and build XDP buff in vhost_net - store XDP buffs in an array and submit them once for every N packets from vhost_net - since TUN can only do native XDP for datacopy packet, to simplify the logic, split datacopy out logic and only do batching for datacopy.
I like how this rework looks. Pls go ahead and repost as non-RFC.
With this series, TX PPS can improve about 34% from 2.9Mpps to 3.9Mpps when doing xdp_redirect_map between TAP and ixgbe. Thanks Jason Wang (12): vhost_net: introduce helper to initialize tx iov iter vhost_net: introduce vhost_exceeds_weight() vhost_net: introduce vhost_has_more_pkts() vhost_net: split out datacopy logic vhost_net: batch update used ring for datacopy TX tuntap: enable premmption early tuntap: simplify error handling in tun_build_skb() tuntap: tweak on the path of non-xdp case in tun_build_skb() tuntap: split out XDP logic vhost_net: build xdp buff vhost_net: passing raw xdp buff to tun vhost_net: batch submitting XDP buffers to underlayer sockets drivers/net/tun.c | 226 +++++++++++++++++++++++++++---------- drivers/vhost/net.c | 297 ++++++++++++++++++++++++++++++++++++++++++++----- include/linux/if_tun.h | 7 ++ 3 files changed, 444 insertions(+), 86 deletions(-) -- 2.7.4