>From e500c2fde6015def020166b7aac91d053d361d1e Mon Sep 17 00:00:00 2001
From: Vincenzo Maffione
Date: Thu, 25 Jul 2013 15:14:24 +0200
Subject: [PATCH] e1000: add interrupt mitigation support
This patch partially implements the e1000 interrupt mitigation mechanisms.
Using a single QEMUTimer,
Hello,
I tried to support cross-version migration using version_id and
VMState subsections.
I also disable MIT if the machine is "pc-i440fx-1.5": Is that the
correct way to do it?
Thanks,
Vincenzo Maffione
>From 4e692113753db8dea6cbcc7a729cfa81469a76ca Mon Sep 17 00:00:00 2001
F
2013/7/26 Andreas Färber :
> Hi,
>
> Am 26.07.2013 12:14, schrieb Vincenzo Maffione:
>> I tried to support cross-version migration using version_id and
>> VMState subsections.
>
> The point of using a subsection is to avoid incrementing version_id AFAIU.
>
Cons
That's very clear!
Thanks,
Vincenzo
2013/7/26 Andreas Färber :
> Am 26.07.2013 15:09, schrieb Vincenzo Maffione:
>> 2013/7/26 Andreas Färber :
>>> Am 26.07.2013 12:14, schrieb Vincenzo Maffione:
>>>> I tried to support cross-version migration using vers
papers/20130520-rizzo-vm.pdf
Signed-off-by: Vincenzo Maffione
---
Mitigation disabled when -M pc-i440fx-1.5 using a "compat_props" entry.
If I understood correctly the E1000State struct instance is
zeroed at creation, and so the hunk relative to the e1000_post_load()
function isn't str
oczi :
> On Fri, Jul 26, 2013 at 05:02:50PM +0200, Vincenzo Maffione wrote:
>> +static const VMStateDescription vmstate_e1000_mit_state = {
>> +.name = "e1000/mit_state",
>> +.version_id = 1,
>> +.minimum_version_id = 1,
papers/20130520-rizzo-vm.pdf
Signed-off-by: Vincenzo Maffione
---
I removed "mit_timer_on" and "mit_ide" from the VMstate subsection,
since in the migration scheme they are always loaded as 0 on
the destination QEMU instance. This also ensures that the mitigation
timer is never ac
Implement interrupt mitigation for the e1000 device with the
corresponding "mitigation" device property.
Add a compat_props entry to pc-1.6 machines in order to set the
"mitigation" property for these machines.
Vincenzo Maffione (2):
e1000: add interrupt mitigati
PC_COMPAT_1_6 macro introduced in order to set the e1000
"mitigation" property off for pc-i440fx-1.6 and pc-q35-1.6
machines.
Signed-off-by: Vincenzo Maffione
---
hw/i386/pc_piix.c| 4
hw/i386/pc_q35.c | 4
include/hw/i386/pc.h | 7 +++
3 files changed, 15
Sorry, I'm not confident with this infrastructure.
So do you just want me to invert the commit order? (and do the other
two little changes)
Thanks,
Vincenzo
2013/7/31 Andreas Färber :
> Am 31.07.2013 10:13, schrieb Vincenzo Maffione:
>> Implement interrupt mitigation for th
Should I extend PC_COMPAT_1_5 with PC_COMPAT_1_6 as a "tail", or
should I avoid extending it in the Patch 1, and do the extension in
Patch 2 (when I have a non-empty PC_COMPAT_1_6)?
2013/7/31 Stefan Hajnoczi :
> On Wed, Jul 31, 2013 at 12:19:06PM +0200, Vincenzo Maffione wrote:
>
papers/20130520-rizzo-vm.pdf
Signed-off-by: Vincenzo Maffione
---
hw/net/e1000.c | 131 +++--
1 file changed, 128 insertions(+), 3 deletions(-)
diff --git a/hw/net/e1000.c b/hw/net/e1000.c
index fdb1f89..32014c2 100644
--- a/hw/net/e1000.c
+++ b
Ok, so back to the one-patch version! :) I'll prepare it asap.
Thanks,
Vincenzo
2013/8/1 Andreas Färber :
> Am 01.08.2013 11:38, schrieb Stefan Hajnoczi:
>> On Wed, Jul 31, 2013 at 03:39:05PM +0200, Vincenzo Maffione wrote:
>>> Ok, but it's unclear how do you
t/~luigi/papers/20130520-rizzo-vm.pdf
Signed-off-by: Vincenzo Maffione
---
Added pc-*-1.7 machines (default machine moved to pc-i440fx-1.7).
hw/i386/pc_piix.c| 18 ++-
hw/i386/pc_q35.c | 16 ++-
hw/net/e1000.c | 131 +--
inclu
Thank you guys for your support!
Best regards,
Vincenzo
2013/8/6 Stefan Hajnoczi :
> On Fri, Aug 02, 2013 at 06:30:52PM +0200, Vincenzo Maffione wrote:
>> This patch partially implements the e1000 interrupt mitigation mechanisms.
>> Using a single QEMUTimer, it emulates the ITR
Ok.
I did not include those modifications into the patch in order to avoid
modifications to the TAP netdev.
2014/1/13 Stefan Hajnoczi
> On Fri, Dec 13, 2013 at 01:04:59PM +0100, Vincenzo Maffione wrote:
> > diff --git a/include/net/net.h b/include/net/net.h
> > index 11e1468.
2014/1/13 Stefan Hajnoczi
> On Fri, Dec 13, 2013 at 01:05:02PM +0100, Vincenzo Maffione wrote:
> > +static void netmap_using_vnet_hdr(NetClientState *nc, bool enable)
> > +{
> > +}
>
> I was trying to figure out whether it's okay for this function to be a
> nop
ly in tap_set_vnet_hdr_len() and remove
tap_using_vnet_hdr(), making the code simpler.
Signed-off-by: Vincenzo Maffione
---
hw/net/virtio-net.c | 4
hw/net/vmxnet3.c| 2 --
include/net/tap.h | 1 -
net/tap-win32.c | 4
net/tap.c | 11 +--
5 files changed, 1 inse
manipulate
backend offloadings.
Signed-off-by: Vincenzo Maffione
---
include/net/net.h | 17 +
net/net.c | 46 ++
2 files changed, 63 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index 11e1468..29a0698 100644
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 NetC
The tap_has_vnet_hdr() and tap_has_vnet_hdr_len() functions used
to return int, even though they only return true/false values.
This patch changes the prototypes to return bool.
Signed-off-by: Vincenzo Maffione
---
include/net/tap.h | 4 ++--
net/tap-win32.c | 8
net/tap.c
The TAP NetClientInfo structure is inizialized with the TAP-specific
callbacks that manipulates backend offloading features.
Signed-off-by: Vincenzo Maffione
---
net/tap.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/net/tap.c b/net/tap.c
index 42f768c..e6c598d 100644
--- a/net
Whit this patch, the netmap backend supports TSO/UFO/CSUM
offloadings, and accepts the virtio-net header, similarly to what
happens with TAP. The offloading callbacks in the NetClientInfo
interface have been implemented.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 59
. netmap).
Signed-off-by: Vincenzo Maffione
---
hw/net/virtio-net.c | 14 +-
hw/net/vmxnet3.c| 10 --
2 files changed, 9 insertions(+), 15 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index ac8322d..c850d5b 100644
--- a/hw/net/virtio-net.c
+++ b/hw
2014/1/16 Stefan Hajnoczi
> On Tue, Jan 14, 2014 at 11:59:44AM +0100, Vincenzo Maffione wrote:
> > (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
> i
en revised: NETMAP_BDG_OFFSET becomes
NETMAP_BDG_VNET_HDR, netmap_set_offload() implemented and
netmap_has_vnet_hdr_len() rewritten.
Vincenzo Maffione (5):
net: change vnet-hdr TAP prototypes
net: extend NetClientInfo for offloading
net: TAP uses NetClientInfo offloading callbacks
net: virt
. netmap).
Signed-off-by: Vincenzo Maffione
---
hw/net/virtio-net.c | 16 ++--
hw/net/vmxnet3.c| 12 +---
2 files changed, 11 insertions(+), 17 deletions(-)
diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c
index 3626608..00c149b 100644
--- a/hw/net/virtio-net.c
The tap_has_vnet_hdr() and tap_has_vnet_hdr_len() functions used
to return int, even though they only return true/false values.
This patch changes the prototypes to return bool.
Signed-off-by: Vincenzo Maffione
---
include/net/tap.h | 4 ++--
net/tap-win32.c | 8
net/tap.c
Some new callbacks have been added to generalize the operations done
by virtio-net and vmxnet3 frontends to manipulate TAP offloadings.
Signed-off-by: Vincenzo Maffione
---
include/net/net.h | 19 +++
net/net.c | 55
The TAP NetClientInfo structure is inizialized with the TAP-specific
functions that manipulates offloading features.
Signed-off-by: Vincenzo Maffione
---
net/tap.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/net/tap.c b/net/tap.c
index c805f3c..d34ec88 100644
--- a/net/tap.c
+++ b
Whit this patch, the netmap backend supports TSO/UFO/CSUM
offloadings, and accepts the virtio-net header, similarly to what
happens with TAP. The offloading callbacks in the NetClientInfo
interface have been implemented.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 68
/usr/include/net/netmap.h and netmap_user.h out of the box.
> > I've no idea what is inside and how compatible it is with whatever
> > qemu expects.
> >
> > I had to explicitly use --disable-netmap for qemu to build on freebsd.
> >
> > This is FreeBSD 9.1-RELEASE, FWIW.
>
> Vincenzo: Do you need to add a ./configure check so NS_MOREFRAG is only
> used when the host kernel supports it?
>
--
Vincenzo Maffione
Fri, Feb 14, 2014 at 2:20 AM, Vincenzo Maffione
> wrote:
>
>> Yes, for sure we need to do a check.
>>
>> However, this would involve - I think - some non-trivial modifications to
>> net/netmap.c, because without NS_MOREFRAG you cannot split a packet over
>> more
Ok, this patch should preferably go in before the offloadings.
2014-02-14 16:40 GMT+01:00 Stefan Hajnoczi :
> On Fri, Feb 14, 2014 at 02:41:24PM +0100, Vincenzo Maffione wrote:
> > It is ok for you if I prepare a patch (touching configure and
> > net/netmap.c) that makes sure
This patch fixes configure so that netmap is not compiled in if the
host doesn't support an API version >= 11.
Moreover, some modifications have been done to net/netmap.c in
order to reflect the current netmap API (11).
Signed-off-by: Vincenzo Maffione
---
configure| 3 +++
net/
2014-02-19 16:30 GMT+01:00 Stefan Hajnoczi :
> On Fri, Feb 14, 2014 at 05:40:24PM +0100, Vincenzo Maffione wrote:
> > This patch fixes configure so that netmap is not compiled in if the
> > host doesn't support an API version >= 11.
> >
> > Moreover, some
/vhost_net.c | 6 +++---
> hw/net/virtio-net.c | 12 ++--
> hw/net/vmxnet3.c| 18 +-
> include/net/net.h | 14 +++---
> net/net.c | 36 ++------
> 5 files changed, 43 insertions(+), 43 deletions(-)
>
> --
> 1.8.5.3
>
>
--
Vincenzo Maffione
RD macro definitions in the QEMU
code, and we open the way for further code simplifications that will be
introduced by future patches.
Signed-off-by: Vincenzo Maffione
---
Note: This patch is against the net-next/net Stefan's branch.
Changes against the previous version:
(1) more complete commi
Hi,
I cannot see it in your net tree.
Thanks,
Vincenzo
2014-02-21 11:05 GMT+01:00 Stefan Hajnoczi :
> On Thu, Feb 20, 2014 at 03:40:43PM +0100, Vincenzo Maffione wrote:
> > This patch fixes configure so that the netmap backend is not compiled in
> if the
> > host does
ping
Cheers
Vincenzo
2014-01-20 Vincenzo Maffione :
> 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
Ok, It could go as patch 5/6.
Thanks
2014-02-06 Stefan Hajnoczi :
> On Mon, Jan 20, 2014 at 06:07:03PM +0100, Vincenzo Maffione wrote:
> > The TAP NetClientInfo structure is inizialized with the TAP-specific
> > functions that manipulates offloading features.
> >
> &
The tap_has_vnet_hdr() and tap_has_vnet_hdr_len() functions used
to return int, even though they only return true/false values.
This patch changes the prototypes to return bool.
Signed-off-by: Vincenzo Maffione
---
include/net/tap.h | 4 ++--
net/tap-win32.c | 8
net/tap.c
Whit this patch, the netmap backend supports TSO/UFO/CSUM
offloadings, and accepts the virtio-net header, similarly to what
happens with TAP. The offloading callbacks in the NetClientInfo
interface have been implemented.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 68
. netmap).
Signed-off-by: Vincenzo Maffione
---
hw/net/vhost_net.c | 4 ++--
hw/net/virtio-net.c | 16 ++--
hw/net/vmxnet3.c| 12 +---
3 files changed, 13 insertions(+), 19 deletions(-)
diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c
index 854997d..c90b9ec 100644
The TAP NetClientInfo structure is inizialized with the TAP-specific
functions that manipulates offloading features.
Signed-off-by: Vincenzo Maffione
---
net/tap-win32.c | 92 ++---
net/tap.c | 6
2 files changed, 55 insertions
Since TAP offloadings are manipulated through a new API, it's
not necessary to export them in include/net/tap.h anymore.
Signed-off-by: Vincenzo Maffione
---
include/net/tap.h | 6 --
net/tap-win32.c | 12 ++--
net/tap.c | 12 ++--
3 files changed, 12 inser
,ifname=vale0:01,id=mynet -smp 2 -vga std -m 3G
Changes against the previous version ***
(1) make tap offloading callbacks static
(2) tap-win32.c modified to initialize offloading callback pointers
(3) fix a bug when calling qemu_peer_using_vnet_header
Vincenzo Maffione (6
Some new callbacks have been added to generalize the operations done
by virtio-net and vmxnet3 frontends to manipulate TAP offloadings.
Signed-off-by: Vincenzo Maffione
---
include/net/net.h | 19 +++
net/net.c | 55
-to-guest UDP_STREAM netperf test (64 bytes
packets) with virtio-net frontends:
820 Kpps ==> 1000 Kpps (+22%).
Measured improvement of a guest-to-guest UDP test (64 bytes packets) with
e1000 frontends and netmap clients on the guests:
1.8 Mpps ==> 3.1 Mpps (+72%).
Signed-off-by: Vi
) we could also
make it optional.
Cheers
Vincenzo
2013/12/9 Michael S. Tsirkin
> On Mon, Dec 09, 2013 at 11:20:29AM +0100, Vincenzo Maffione wrote:
> > Hello,
> >I've done some netperf TCP_STREAM and TCP_RR virtio-net tests, using
> the
> > same
2013/12/9 Stefan Hajnoczi
> On Mon, Dec 09, 2013 at 01:14:31PM +0200, Michael S. Tsirkin wrote:
> > On Mon, Dec 09, 2013 at 11:55:57AM +0100, Vincenzo Maffione wrote:
> > > If you don't think adding the new flag support for virtio-net is a
> good idea
> >
6PM +0100, Vincenzo Maffione wrote:
> >
> >
> >
> > 2013/12/9 Stefan Hajnoczi
> >
> > On Mon, Dec 09, 2013 at 01:14:31PM +0200, Michael S. Tsirkin wrote:
> > > On Mon, Dec 09, 2013 at 11:55:57AM +0100, Vincenzo Maffione wrote:
> >
es a switch and
> > > +# YYY identifies a port of the switch. VALE ports having the
> > > +# same XXX are therefore connected to the same switch.
> > > +#
> > > +# @devname: #optional path of the netmap device (default:
> '/dev/netmap').
> > > +#
> > > +# Since 1.8
> >
> > s/1.8/2.0/
>
> Thank you for spotting this. Sending a separate patch to fix this since
> the pull request has been merged.
>
> Stefan
>
--
Vincenzo Maffione
manipulate
backend offloadings.
Signed-off-by: Vincenzo Maffione
---
include/net/net.h | 19 +++
net/net.c | 55 +++
2 files changed, 74 insertions(+)
diff --git a/include/net/net.h b/include/net/net.h
index 11e1468
The TAP NetClientInfo structure is inizialized with the TAP-specific
callbacks that manipulates backend offloading features.
Signed-off-by: Vincenzo Maffione
---
net/tap.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/net/tap.c b/net/tap.c
index 39c1cda..175fcb3 100644
--- a/net
With this patch we remove the existing checks in the virtio-net
and vmxnet3 frontends that prevents them from using
offloadings with backends different from TAP (e.g. netmap).
Signed-off-by: Vincenzo Maffione
---
hw/net/virtio-net.c | 4
hw/net/vmxnet3.c| 4 +---
2 files changed, 1
,ifname=vale0:01,id=mynet -smp 2 -vga std -m 3G
Vincenzo Maffione (5):
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
net: virtio-net and
With this patch, virtio-net and vmxnet3 frontends make
use of the qemu_peer_* API for backend offloadings manipulations,
instead of calling TAP-specific functions directly.
Signed-off-by: Vincenzo Maffione
---
hw/net/virtio-net.c | 12 ++--
hw/net/vmxnet3.c| 14 +++---
2
Whit this patch, the netmap backend supports TSO/UFO/CSUM
offloadings, and accepts the virtio-net header, similarly to what
happens with TAP. The offloading callbacks in the NetClientInfo
interface have been implemented.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 64
-netmap --extra-cflags=-I/path/to/netmap/sys
where "/path/to/netmap" contains the netmap source code, available at
http://info.iet.unipi.it/~luigi/netmap/
The same webpage contains more information about the netmap project
(together with papers and presentations).
Signed-off-by: Vincenz
-netmap --extra-cflags=-I/path/to/netmap/sys
where "/path/to/netmap" contains the netmap source code, available at
http://info.iet.unipi.it/~luigi/netmap/
The same webpage contains more information about the netmap project
(together with papers and presentations).
Signed-off-by: Vincenz
-netmap --extra-cflags=-I/path/to/netmap/sys
where "/path/to/netmap" contains the netmap source code, available at
http://info.iet.unipi.it/~luigi/netmap/
The same webpage contains more information about the netmap project
(together with papers and presentations).
Signed-off-by: Vincenz
42:06PM +0100, Vincenzo Maffione wrote:
> > This patch adds support for a network backend based on netmap.
> > netmap is a framework for high speed packet I/O. You can use it
> > to build extremely fast traffic generators, monitors, software
> > switches or network middleboxes. I
Sure,
I see that all the "net/" is in the "Network device layer" section.
Our section would be something like
"
Netmap network backend
M: Luigi Rizzo
M: Giuseppe Lettieri
M: Vincenzo Maffione
S: Maintained
F: net/netmap.c
"
right?
Do we have to exclude (X) &q
Signed-off-by: Vincenzo Maffione
---
MAINTAINERS | 8
1 file changed, 8 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 77edacf..7295f33 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -707,6 +707,14 @@ S: Maintained
F: net/
T: git git://github.com/stefanha/qemu.git net
-netmap --extra-cflags=-I/path/to/netmap/sys
where "/path/to/netmap" contains the netmap source code, available at
http://info.iet.unipi.it/~luigi/netmap/
The same webpage contains more information about the netmap project
(together with papers and presentations).
Signed-off-by: Vincenz
simpler that doesn't use a timer:
>
> Rely on the guest to submit a batch of packets for tx. When processing
> the descriptor ring in the device emulation code (virtio-net, etc), use
> the CORK flag on all packets except the final one.
>
> This essentially hands the contents of the tx ring to the netdev (tap,
> L2TPv3, etc) and then lets them submit the entire batch using
> sendmmsg(2).
>
> When we discussed this previously there was concern about the latency
> added by CORK.
>
--
Vincenzo Maffione
()
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
net: netmap: use error_setg_errno() in place of error_report()
net/netmap.c | 16 +++-
1 file changed, 7 insertions(+), 9 deletions(-)
--
2.3.3
Reorganization of struct NetClientOptions caused a compilation failure
of the netmap backend. This patch fixes the issue by properly accessing the
union field.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/net/netmap.c b
This update was required to align netmap backend to the other
net backends in terms of error reporting.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 14 ++
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/net/netmap.c b/net/netmap.c
index 4197a9c..45290d8 100644
Sure, no problems. I was looking for that commit, but using git blame
didn't work, since there the data structure seems to be part of
autogenerated code.
2015-11-05 14:01 GMT+01:00 Markus Armbruster :
> Vincenzo Maffione writes:
>
>> Reorganization of struct NetClientOptions cau
ter wrote:
>> Vincenzo Maffione writes:
>>
>>> Reorganization of struct NetClientOptions caused a compilation failure
>>> of the netmap backend. This patch fixes the issue by properly accessing the
>>> union field.
>>>
>>> Signed-off-by: Vin
2015-11-05 16:01 GMT+01:00 Eric Blake :
> On 11/05/2015 07:52 AM, Vincenzo Maffione wrote:
>> No worries.
>>
>> It needs --enable-netmap (default is --disable-netmap on linux), and
>> --extra-cflags=-I/path/to/netmap/sys for netmap API headers.
>>
>&g
Reorganization of struct NetClientOptions (commit e4ba22b) caused a
compilation failure of the netmap backend. This patch fixes the issue
by properly accessing the union field.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a
()
CHANGELOG:
- fixed commit messages to reference appropriate commits
- modify netmap_open() to return error in a local Error
variable
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
net: netmap: use error_setg_errno() in place of error_report()
net/clients.h | 4
This update was required to align error reporting of netmap backend
initialization to the modifications introduced by commit a30ecde.
Signed-off-by: Vincenzo Maffione
---
net/clients.h | 4 ++--
net/netmap.c | 32
2 files changed, 18 insertions(+), 18
Ok, preparing them.
2015-11-06 16:35 GMT+01:00 Eric Blake :
> On 11/06/2015 08:13 AM, Vincenzo Maffione wrote:
>> This update was required to align error reporting of netmap backend
>> initialization to the modifications introduced by commit a30ecde.
>>
>> Signe
Reorganization of struct NetClientOptions (commit e4ba22b) caused a
compilation failure of the netmap backend. This patch fixes the issue
by properly accessing the union field.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a
error_report()
CHANGELOG:
- removed dead return and use error_setg_file_open() in place
of error_setg_errno()
- I noticed that net_init_netmap() has to return int, so I restored
the return statements in that function
Vincenzo Maffione (2):
net: netmap: Fix compilation issue
This update was required to align error reporting of netmap backend
initialization to the modifications introduced by commit a30ecde.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 22 +++---
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/net/netmap.c b/net
2016-01-19 19:48 GMT+01:00 Paolo Bonzini :
>
>
> On 19/01/2016 17:54, Michael S. Tsirkin wrote:
>> On Fri, Jan 15, 2016 at 01:41:57PM +0100, Paolo Bonzini wrote:
>>> From: Vincenzo Maffione
>>>
>>> The virtqueue_pop() implementation needs to check i
01/08/2016 09:15 PM, Vincenzo Maffione wrote:
>> With this patch, nm_open() does not mmap() the netmap device. This
>> operation is performed separately only if the memory area of the
>> port just opened was not known before.
>> A global list of netmap clients is kept to che
und in the netmap man page and in the netmap API headers.
CHANGELOG:
- dropped patch 2, since it requires further rearrangements on our side.
Vincenzo Maffione (1):
net: netmap: use nm_open() to open netmap ports
net/netmap.c | 97 --
, monitors) and use special modes (e.g. host rings
only, single queue mode, exclusive access).
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 97
1 file changed, 32 insertions(+), 65 deletions(-)
diff --git a/net/netmap.c b/net
probe mechanism, fixing the
implementation of the involved hooks (has_vnet_hdr, has_vnet_hdr_len, has_ufo,
...).
Vincenzo Maffione (1):
net: netmap: probe netmap interface for virtio-net header
net/netmap.c | 70 ++--
1 file changed, 44
implementation to work properly with all kinds
of netmap ports.
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 70 ++--
1 file changed, 44 insertions(+), 26 deletions(-)
diff --git a/net/netmap.c b/net/netmap.c
index 9710321..f2dcaeb
k the idea makes sense, and
a proper patch in this direction would be accepted.
Thanks,
Vincenzo
Vincenzo Maffione (1):
virtio: optimize access to guest physical memory
hw/virtio/virtio.c | 118 +++--
1 file changed, 88 insertions(+), 30 dele
Accessing a location of guest physical memory involves a translation
from guest physical addresses to host virtual address. This patch
removes unnecessary accesses by virtio implementation, so that at
high processing rates the bottleneck goes from ~1Mtts to ~2Mtts.
Signed-off-by: Vincenzo
2015-12-14 17:06 GMT+01:00 Paolo Bonzini :
>
>
> On 14/12/2015 15:51, Vincenzo Maffione wrote:
>>
>> This patch slightly rewrites the code to reduce the number of accesses, since
>> many of them seems unnecessary to me. After this reduction, the bottleneck
>
t; != max);
>
> if (!indirect)
> total_bufs = num_bufs;
Here (http://article.gmane.org/gmane.comp.emulators.qemu.block/6620) you meant
+in_total += desc.len;
and
+out_total += desc.len;
2015-12-14 17:06 GMT+01:00 Paolo Bonzini
nto 3 patches
Vincenzo Maffione (3):
virtio: cache used_idx in a VirtQueue field
virtio: read avail_idx from VQ only when necessary
virtio: combine write of an entry into used ring
hw/virtio/virtio.c | 62 --
1 file changed, 42 insertions(+
Fill in an element of the used ring with a single combined access to the
guest physical memory, rather than using two separated accesses.
This reduces the overhead due to expensive address translation.
Signed-off-by: Vincenzo Maffione
---
hw/virtio/virtio.c | 25 -
1
virtio_queue_empty() to access avail_idx in physical
memory only when necessary.
Signed-off-by: Vincenzo Maffione
---
hw/virtio/virtio.c | 25 +
1 file changed, 21 insertions(+), 4 deletions(-)
diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
index a35bb38..5a2ea8a 100644
--- a/hw
Accessing used_idx in the VQ requires an expensive access to
guest physical memory. Before this patch, 3 accesses are normally
done for each pop/push/notify call. However, since the used_idx is
only written by us, we can track it in our internal data structure.
Signed-off-by: Vincenzo Maffione
ou call an access_memory() function - it looks
like a lot of operations.
Cheers,
Vincenzo
2015-12-16 9:38 GMT+01:00 Paolo Bonzini :
>
>
> On 15/12/2015 23:33, Vincenzo Maffione wrote:
>> This patch slightly rewrites the code to reduce the number of accesses, since
>> many of them
2015-12-16 10:34 GMT+01:00 Paolo Bonzini :
>
>
> On 16/12/2015 10:28, Vincenzo Maffione wrote:
>> Assuming my TX experiments with disconnected backend (and I disable
>> CPU dynamic scaling of performance, etc.):
>> 1) after patch 1 and 2, virtio bottleneck jumps from ~
2015-12-16 12:02 GMT+01:00 Michael S. Tsirkin :
> On Wed, Dec 16, 2015 at 11:39:46AM +0100, Vincenzo Maffione wrote:
>> 2015-12-16 10:34 GMT+01:00 Paolo Bonzini :
>> >
>> >
>> > On 16/12/2015 10:28, Vincenzo Maffione wrote:
>> >> Assuming my TX expe
2015-12-16 12:37 GMT+01:00 Paolo Bonzini :
>
>
> On 16/12/2015 11:39, Vincenzo Maffione wrote:
>> No problems.
>>
>> I have some additional (orthogonal) curiosities:
>>
>> 1) Assuming "hw/virtio/dataplane/vring.c" is what I think it is (VQ
&
2015-12-16 16:46 GMT+01:00 Paolo Bonzini :
>
>
> On 16/12/2015 15:25, Vincenzo Maffione wrote:
>>> vhost-net actually had better performance, so virtio-net dataplane
>>> was never committed. As Michael mentioned, in practice on Linux you
>>> use vhost, and
, monitors) and use special modes (e.g. host rings
only, single queue mode, exclusive access).
Signed-off-by: Vincenzo Maffione
---
net/netmap.c | 97
1 file changed, 32 insertions(+), 65 deletions(-)
diff --git a/net/netmap.c b/net
1 - 100 of 128 matches
Mail list logo