[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support
From: |
Vincenzo Maffione |
Subject: |
[Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support |
Date: |
Tue, 14 Jan 2014 11:59:44 +0100 |
The purpose of this patch series is to add offloadings support
(TSO/UFO/CSUM) to the netmap network backend, and make it possible
for the paravirtual network frontends (virtio-net and vmxnet3) to
use it.
In order to achieve this, these patches extend the existing
net.h interface to add abstract operations through which a network
frontend can manipulate backend offloading features, instead of
directly calling TAP-specific functions.
Guest-to-guest performance before this patches for virtio-net + netmap:
TCP_STREAM 5.0 Gbps
TCP_RR 12.7 Gbps
UDP_STREAM (64-bytes) 790 Kpps
Guest-to-guest performance after this patches for virtio-net + netmap:
TCP_STREAM 21.4 Gbps
TCP_RR 12.7 Gbps
UDP_STREAM (64-bytes) 790 Kpps
Experiment details:
- Processor: Intel i7-3770K CPU @ 3.50GHz (8 cores)
- Memory @ 1333 MHz
- Host O.S.: Archlinux with Linux 3.11
- Guest O.S.: Archlinux with Linux 3.11
- QEMU command line:
qemu-system-x86_64 archdisk.qcow -snapshot -enable-kvm -device
virtio-net-pci,ioeventfd=on,mac=00:AA:BB:CC:DD:01,netdev=mynet -netdev
netmap,ifname=vale0:01,id=mynet -smp 2 -vga std -m 3G
******** Changes against the previous version ***********
(1) The first two commits were not included into the previous version. They
are used to clean the TAP interface before the offloadings manipulation
API is introduced.
(2) The fifth commit merges two commits from the previous version: 3/5
"virtio-net and
vmxnet3 use offloading API" and 5/5 "virtio-net and vmxnet3 can use netmap
offloadings".
This because of (3).
(3) There is actually an important problem. In the previous patch version,
TCP/UDP traffic was
supported between two guests attached to a VALE switch if and only if both
guests use (or
don't) the same offloadings: e.g. two virtio-net guests or two e1000
guests. This is why
in this version I put the commit which adds the support for netmap as the
last one and
I temporarily disable the offloading feature (e.g. netmap_has_vnet_hdr()
returns false).
We are working at adding proper support also in the general case in which
there is
a mismatch between the NIC offloadings capabilities. As soon as we have
proper support,
we can enable it in net/netmap.c.
What do you think about that? What's the best way to manage this temporary
lack of
support?
Vincenzo Maffione (6):
net: change vnet-hdr TAP prototypes
net: removing tap_using_vnet_hdr() function
net: extend NetClientInfo for offloading manipulations
net: TAP uses NetClientInfo offloading callbacks
net: virtio-net and vmxnet3 use offloading API
net: add offloadings support to netmap backend
hw/net/virtio-net.c | 18 +++++-----------
hw/net/vmxnet3.c | 12 ++++-------
include/net/net.h | 17 +++++++++++++++
include/net/tap.h | 5 ++---
net/net.c | 46 +++++++++++++++++++++++++++++++++++++++++
net/netmap.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
net/tap-win32.c | 12 ++++-------
net/tap.c | 22 ++++++++------------
8 files changed, 145 insertions(+), 46 deletions(-)
--
1.8.5.2
- [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support,
Vincenzo Maffione <=
- [Qemu-devel] [PATCH v2 2/6] net: removing tap_using_vnet_hdr() function, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 1/6] net: change vnet-hdr TAP prototypes, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 4/6] net: TAP uses NetClientInfo offloading callbacks, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 6/6] net: add offloadings support to netmap backend, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 3/6] net: extend NetClientInfo for offloading manipulations, Vincenzo Maffione, 2014/01/14
- [Qemu-devel] [PATCH v2 5/6] net: virtio-net and vmxnet3 use offloading API, Vincenzo Maffione, 2014/01/14
- Re: [Qemu-devel] [PATCH v2 0/6] Add netmap backend offloadings support, Barak Wasserstrom, 2014/01/15