virtio_net: introduce VIRTIO_NET_HDR_F_DATA_VALID
There's no need for the guest to validate the checksum if it have been validated by host nics. So this patch introduces a new flag - VIRTIO_NET_HDR_F_DATA_VALID which is used to bypass the checksum examing in guest. The backend (tap/macvtap) may set this flag when met skbs with CHECKSUM_UNNECESSARY to save cpu utilization. No feature negotiation is needed as old driver just ignore this flag. Iperf shows 12%-30% performance improvement for UDP traffic. For TCP, when gro is on no difference as it produces skb with partial checksum. But when gro is disabled, 20% or even higher improvement could be measured by netperf. Signed-off-by:Jason Wang <jasowang@redhat.com> Acked-by:
Michael S. Tsirkin <mst@redhat.com> Signed-off-by:
David S. Miller <davem@davemloft.net>
Showing
- drivers/net/macvtap.c 2 additions, 0 deletionsdrivers/net/macvtap.c
- drivers/net/tun.c 2 additions, 0 deletionsdrivers/net/tun.c
- drivers/net/virtio_net.c 2 additions, 0 deletionsdrivers/net/virtio_net.c
- include/linux/virtio_net.h 1 addition, 0 deletionsinclude/linux/virtio_net.h
- net/packet/af_packet.c 2 additions, 0 deletionsnet/packet/af_packet.c
Loading
Please register or sign in to comment