.
Signed-off-by: Jason Wang
---
drivers/lguest/lguest_device.c |8
drivers/s390/kvm/kvm_virtio.c |6 ++
drivers/virtio/virtio_mmio.c |8
drivers/virtio/virtio_pci.c| 12
include/linux/virtio_config.h |4
5 files changed, 38 insertions
:
- Txq selection is based on the processor id in order to avoid contending a lock
whose owner may exits to host.
- Since the txq/txq were per-cpu, affinity hint were set to the cpu that owns
the queue pairs.
Signed-off-by: Krishna Kumar
Signed-off-by: Jason Wang
---
drivers/net/virtio_net.c
review and comments.
---
Jason Wang (4):
option: introduce qemu_get_opt_all()
tap: multiqueue support
net: multiqueue support
virtio-net: add multiqueue support
hw/dp8393x.c |2
hw/mcf_fec.c |2
hw/qdev-properties.c | 33 +++-
hw/qdev.h
: Jason Wang
---
qemu-option.c | 19 +++
qemu-option.h |2 ++
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/qemu-option.c b/qemu-option.c
index bb3886c..9263125 100644
--- a/qemu-option.c
+++ b/qemu-option.c
@@ -545,6 +545,25 @@ static QemuOpt *qemu_opt_find
detach
file. Platform-specific helpers were called and only linux helper has its
content as multiqueue tap were only supported in linux.
Signed-off-by: Jason Wang
---
net.c |4 +
net/tap-aix.c | 13 +++-
net/tap-bsd.c | 13 +++-
net/tap-haiku.c | 13 +++-
net/tap
from or sent
out. Virtio-net would be the first user.
Signed-off-by: Jason Wang
---
hw/dp8393x.c |2 +-
hw/mcf_fec.c |2 +-
hw/qdev-properties.c | 33 +++-
hw/qdev.h|3 ++-
net.c| 58
e could be used without
changes in vhost code. So each vhost_net structure were used to track a single
VLANClientState and two virtqueues in the past. As multiple VLANClientState were
stored in the NICState, we can infer the correspond VLANClientState from this
and queue_index easily.
Signed-off-by:
On 06/25/2012 06:14 PM, Michael S. Tsirkin wrote:
On Mon, Jun 25, 2012 at 05:41:17PM +0800, Jason Wang wrote:
Device specific irq optimizations such as irq affinity may be used by virtio
drivers. So this patch introduce a new method to get the irq of a specific
virtqueue.
After this patch
On 07/01/2012 05:43 PM, Michael S. Tsirkin wrote:
On Mon, Jun 25, 2012 at 06:04:49PM +0800, Jason Wang wrote:
This patch let the virtio-net can transmit and recevie packets through multiuple
VLANClientStates and abstract them as multiple virtqueues to guest. A new
parameter 'queues&
guest notifiers assignment/de-assignment
- changes the command lines to:
qemu -netdev tap,queues=2 -device virtio-net-pci,queues=2
References:
- V2 http://www.spinics.net/lists/kvm/msg74588.html
- V1 http://comments.gmane.org/gmane.comp.emulators.qemu/100481
Jason Wang (5):
option: introduce
: Jason Wang
---
qemu-option.c | 19 +++
qemu-option.h |2 ++
2 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/qemu-option.c b/qemu-option.c
index bb3886c..9263125 100644
--- a/qemu-option.c
+++ b/qemu-option.c
@@ -545,6 +545,25 @@ static QemuOpt *qemu_opt_find
io-net-pci,netdev=hn0,queues=2
To let user tweak the performance, guest could negotiate the num of queues it
wishes to use through control virtqueue.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 505 ++-
hw/virtio-net.h | 12 ++
2 files ch
- increase and decrease the number of queues by introducing helpter to attach or
detach a file descriptor to the device
Then qemu can use this as the infrastructures of emulating a multiple queue
capable network cards.
Signed-off-by: Jason Wang
---
net.c |4 +
net/tap-aix.c | 13
is
done by introducing an vq_index filed in vhost_dev struct to record the index of
first virtuque that is used by the vhost devs. Then vhost could simply convert
it to the local vhost queue index and issue ioctls.
Signed-off-by: Jason Wang
---
hw/vhost.c | 53
from or sent
out. Virtio-net would be the first user.
Signed-off-by: Jason Wang
---
hw/dp8393x.c |2 +-
hw/mcf_fec.c |2 +-
hw/qdev-properties.c | 34 +
hw/qdev.h|3 +-
net.c| 79
4 9391.96 405.17 9695.12 310.54 9423.76 223.47
Jason Wang (12):
tap: multiqueue support
net: introduce qemu_get_queue()
net: introduce qemu_get_nic()
net: intorduce qemu_del_nic()
net: multiqueue support
vhost: multiqueue support
virtio: introduce virtio_queue_del()
virtio: add a q
To support multiqueue virtio-net, the first step is to separate the virtqueue
related fields from VirtIONet to a new structure VirtIONetQueue. The following
patches will add an array of VirtIONetQueue to VirtIONet based on this patch.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 209
To support multiqueue, the patch introduce a helper qemu_get_queue()
which is used to get the NetClientState of a device. The following patches would
refactor this helper to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|8 +++---
hw/dp8393x.c|8
To support multiqueue , the patch introduce a helper qemu_get_nic() to get the
NICState from a NetClientState. The following patches would refactor this helper
to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|8
hw/dp8393x.c|6 +++---
hw
This patch add migration support for multiqueue virtio-net. The version were
bumped to 12.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 45 +++--
1 files changed, 35 insertions(+), 10 deletions(-)
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index
Add a queue_index to VirtQueue and a helper to fetch it, this could be used by
multiqueue supported device.
Signed-off-by: Jason Wang
---
hw/virtio.c |8
hw/virtio.h |1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw/virtio.c
index bc3c9c3
ted file descriptors (queues) to qemu.
Each TAPState were still associated to a tap fd, which mean multiple TAPStates
were created when user needs multiqueue taps.
Only linux part were implemented now, since it's the only OS that support
multiqueue tap.
Signed-off-by: Jason Wang
---
net/tap-ai
Disable multiqueue support for pre 1.4.
Signed-off-by: Jason Wang
---
hw/pc_piix.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 19e342a..0145370 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -295,6 +295,10 @@ static QEMUMachine
-by: Jason Wang
---
hw/dp8393x.c |2 +-
hw/mcf_fec.c |2 +-
hw/qdev-properties.c | 46 +++--
hw/qdev-properties.h |6 +-
net.c| 172 +-
net.h| 27 +++-
6 files changed, 195
virtqueue which this vhost thread serves.
Signed-off-by: Jason Wang
---
hw/vhost.c | 52 +---
hw/vhost.h |2 ++
hw/vhost_net.c |7 +--
hw/vhost_net.h |2 +-
hw/virtio-net.c |3 ++-
5 files changed, 43 insertions
Some device (such as virtio-net) needs the ability to destroy or re-order the
virtqueues, this patch adds a helper to do this.
Signed-off-by: Jason Wang
---
hw/virtio.c |9 +
hw/virtio.h |2 ++
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw
To support multiqueue nic, this patch separate the nic destructor from
qemu_del_net_client() to a new helper qemu_del_nic(). The following patches
would refactor this function to support multiqueue nic.
Signed-off-by: Jason Wang
---
hw/e1000.c |2 +-
hw/eepro100.c|2
This patch implements both userspace and vhost support for multiple queue
virtio-net (VIRTIO_NET_F_MQ). This is done by introducing an array of
VirtIONetQueue to VirtIONet.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 318 ++-
hw/virtio
On 01/25/2013 04:14 PM, Amos Kong wrote:
> FD_SET() and FD_CLR() are used to add and remove one descriptor from a
> set, the 'fd' should be less than FD_SETSIZE. Glibc will give a warning
> and crash the qemu when we set a fd (1024) to a set.
>
> # qemu -device virtio-net-pci,netdev=macvtap_netdev
48 9374.23 372.88 9348.76 298.49
4096 2 9410.53 378.69 9412.61 286.18 9409.75 278.31
4096 4 9487.35 374.1 9556.91 288.81 9441.94 221.64
16384 1 9380.43 403.8 9379.78 399.13 9382.42 393.55
16384 2 9367.69 406.93 9415.04 312.68 9409.29 300.9
16384 4 9391.96 405.17 9695.12 310.54 9423.76 223.47
J
To support multiqueue, the patch introduce a helper qemu_get_queue()
which is used to get the NetClientState of a device. The following patches would
refactor this helper to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|9 +++--
hw/dp8393x.c|9
allowed.
Signed-off-by: Jason Wang
---
hw/dp8393x.c|2 +-
hw/mcf_fec.c|2 +-
hw/qdev-properties-system.c | 46 +++---
hw/qdev-properties.h|6 +-
include/net/net.h | 18 +--
net/net.c | 113
e multiqueue nic support, an N peers of NetClientState
were built up.
A new parameter, mq_required were introduce in tap_open() to create multiqueue
tap fds.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 -
net/tap-aix.c |3 +-
net/tap-bsd.c |3 +-
net/tap-haiku.c |
Some device (such as virtio-net) needs the ability to destroy or re-order the
virtqueues, this patch adds a helper to do this.
Signed-off-by: Jason Wang
---
hw/virtio.c |9 +
hw/virtio.h |2 ++
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw
out of the starting/stopping of a specific vhost
thread. The vhost_net_{start|stop}() were renamed to
vhost_net_{start|stop}_one(), and a new vhost_net_{start|stop}() were introduced
to configure the guest notifiers and start/stop all vhost/vhost_net devices.
Signed-off-by: Jason Wang
---
hw
This patch add migration support for multiqueue virtio-net. Instead of bumping
the version, we conditionally send the info of multiqueue only when the device
support more than one queue to maintain the backward compatibility.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 35
Disable multiqueue support for pre 1.4.
Signed-off-by: Jason Wang
---
hw/pc_piix.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 0a6923d..7bc3563 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -297,6 +297,10 @@ static QEMUMachine
This patch implements both userspace and vhost support for multiple queue
virtio-net (VIRTIO_NET_F_MQ). This is done by introducing an array of
VirtIONetQueue to VirtIONet.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 317 +++
hw/virtio
In multiqueue, all NetClientState that belongs to the same netdev or nic has the
same id. So this patches introduces an helper qemu_find_net_clients_except()
which finds all NetClientState with the same id. This will be used by multiqueue
networking.
Signed-off-by: Jason Wang
---
include/net
This patch factors out the common initialization of tap into a new helper
net_init_tap_one(). This will be used by multiqueue tap patches.
Signed-off-by: Jason Wang
---
net/tap.c | 130 ++---
1 files changed, 73 insertions(+), 57
This patch separates the setup of NetClientState from its allocation, this will
allow allocating an arrays of NetClientState and does the initialization one by
one which is what multiqueue needs.
Signed-off-by: Jason Wang
---
net/net.c | 29 +++--
1 files changed, 19
Add a queue_index to VirtQueue and a helper to fetch it, this could be used by
multiqueue supported device.
Signed-off-by: Jason Wang
---
hw/virtio.c |8
hw/virtio.h |1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw/virtio.c
index d8c77b0
is only supported
in Linux, return error on other platforms.
Signed-off-by: Jason Wang
---
net/tap-aix.c | 10 ++
net/tap-bsd.c | 11 +++
net/tap-haiku.c | 11 +++
net/tap-linux.c | 52
net/tap
its name after
creating the first queue.
Only linux has this support since it's the only platform that supports
multiqueue tap.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 +
net/tap-aix.c |6 ++
net/tap-bsd.c |4
net/tap-haiku.c |4
net/tap-li
To support multiqueue virtio-net, the first step is to separate the virtqueue
related fields from VirtIONet to a new structure VirtIONetQueue. The following
patches will add an array of VirtIONetQueue to VirtIONet based on this patch.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 195
IFF_DETACH_QUEUE, the queue were disabled in the linux kernel. When doing this
ioctl with IFF_ATTACH_QUEUE, the queue were enabled in the linux kernel.
Signed-off-by: Jason Wang
---
net/tap-linux.h |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/tap-linux.h b/net/tap-linux.h
only done when
the tap was enabled.
Signed-off-by: Jason Wang
---
include/net/tap.h |2 ++
net/tap-win32.c | 10 ++
net/tap.c | 43 ---
3 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/include/net/tap.h b/include/net
To allow allocating an array of NetClientState and free it once, this patch
introduces destructor of NetClientState. Which could do type specific free,
which could be used by multiqueue to free the array once.
Signed-off-by: Jason Wang
---
include/net/net.h |2 ++
net/net.c | 17
To support multiqueue, this patch introduces a helper qemu_get_nic() to get
NICState from a NetClientState. The following patches would refactor this helper
to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|8
hw/dp8393x.c|6 +++---
hw
-by: Jason Wang
---
hw/e1000.c |2 +-
hw/eepro100.c|2 +-
hw/ne2000.c |2 +-
hw/pcnet-pci.c |2 +-
hw/rtl8139.c |2 +-
hw/usb/dev-network.c |2 +-
hw/virtio-net.c |2 +-
hw/xen_nic.c |2 +-
include/net/net.h
On 01/28/2013 11:27 AM, Wanlong Gao wrote:
> On 01/25/2013 06:35 PM, Jason Wang wrote:
>> Hello all:
>>
>> This seires is an update of last version of multiqueue virtio-net support.
>>
>> This series tries to brings multiqueue support to virtio-net through a
>
On 01/29/2013 01:36 PM, Wanlong Gao wrote:
> On 01/28/2013 12:24 PM, Jason Wang wrote:
>> On 01/28/2013 11:27 AM, Wanlong Gao wrote:
>>> On 01/25/2013 06:35 PM, Jason Wang wrote:
>>>> Hello all:
>>>>
>>>> This seires is an update of last ve
On 01/26/2013 03:13 AM, Blue Swirl wrote:
> On Fri, Jan 25, 2013 at 10:35 AM, Jason Wang wrote:
>> This patch introduce a new bit - enabled in TAPState which tracks whether a
>> specific queue/fd is enabled. The tap/fd is enabled during initialization and
>> could b
On 01/25/2013 06:35 PM, Jason Wang wrote:
> This patch lets vhost support multiqueue. The idea is simple, just launching
> multiple threads of vhost and let each of vhost thread processing a subset of
> the virtqueues of the device. After this change each emulated device can have
> mu
9441.94 221.64
16384 1 9380.43 403.8 9379.78 399.13 9382.42 393.55
16384 2 9367.69 406.93 9415.04 312.68 9409.29 300.9
16384 4 9391.96 405.17 9695.12 310.54 9423.76 223.47
Jason Wang (20):
net: introduce qemu_get_queue()
net: introduce qemu_get_nic()
net: intorduce qemu_del_nic()
ne
-by: Jason Wang
---
hw/e1000.c |2 +-
hw/eepro100.c|2 +-
hw/ne2000.c |2 +-
hw/pcnet-pci.c |2 +-
hw/rtl8139.c |2 +-
hw/usb/dev-network.c |2 +-
hw/virtio-net.c |2 +-
hw/xen_nic.c |2 +-
include/net/net.h
is only supported
in Linux, return error on other platforms.
Signed-off-by: Jason Wang
---
net/tap-aix.c | 10 ++
net/tap-bsd.c | 11 +++
net/tap-haiku.c | 11 +++
net/tap-linux.c | 52
net/tap
its name after
creating the first queue.
Only linux has this support since it's the only platform that supports
multiqueue tap.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 +
net/tap-aix.c |6 ++
net/tap-bsd.c |4
net/tap-haiku.c |4
net/tap-li
Disable multiqueue support for pre 1.4.
Signed-off-by: Jason Wang
---
hw/pc_piix.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index 0a6923d..7bc3563 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -297,6 +297,10 @@ static QEMUMachine
To allow allocating an array of NetClientState and free it once, this patch
introduces destructor of NetClientState. Which could do type specific free,
which could be used by multiqueue to free the array once.
Signed-off-by: Jason Wang
---
include/net/net.h |2 ++
net/net.c | 17
To support multiqueue, this patch introduces a helper qemu_get_nic() to get
NICState from a NetClientState. The following patches would refactor this helper
to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|8
hw/dp8393x.c|6 +++---
hw
Some device (such as virtio-net) needs the ability to destroy or re-order the
virtqueues, this patch adds a helper to do this.
Signed-off-by: Jason Wang
---
hw/virtio.c |9 +
hw/virtio.h |2 ++
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw
This patch separates the setup of NetClientState from its allocation, this will
allow allocating an arrays of NetClientState and does the initialization one by
one which is what multiqueue needs.
Signed-off-by: Jason Wang
---
net/net.c | 29 +++--
1 files changed, 19
This patch factors out the common initialization of tap into a new helper
net_init_tap_one(). This will be used by multiqueue tap patches.
Signed-off-by: Jason Wang
---
net/tap.c | 130 ++---
1 files changed, 73 insertions(+), 57
In multiqueue, all NetClientState that belongs to the same netdev or nic has the
same id. So this patches introduces an helper qemu_find_net_clients_except()
which finds all NetClientState with the same id. This will be used by multiqueue
networking.
Signed-off-by: Jason Wang
---
include/net
This patch implements both userspace and vhost support for multiple queue
virtio-net (VIRTIO_NET_F_MQ). This is done by introducing an array of
VirtIONetQueue to VirtIONet.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 305 +++
hw/virtio
This patch add migration support for multiqueue virtio-net. Instead of bumping
the version, we conditionally send the info of multiqueue only when the device
support more than one queue to maintain the backward compatibility.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 35
To support multiqueue, the patch introduce a helper qemu_get_queue()
which is used to get the NetClientState of a device. The following patches would
refactor this helper to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|9 +++--
hw/dp8393x.c|9
allowed.
Signed-off-by: Jason Wang
---
hw/dp8393x.c|2 +-
hw/mcf_fec.c|2 +-
hw/qdev-properties-system.c | 46 +++---
hw/qdev-properties.h|6 +-
include/net/net.h | 18 +--
net/net.c | 113
Add a queue_index to VirtQueue and a helper to fetch it, this could be used by
multiqueue supported device.
Signed-off-by: Jason Wang
---
hw/virtio.c |8
hw/virtio.h |1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw/virtio.c
index d8c77b0
IFF_DETACH_QUEUE, the queue were disabled in the linux kernel. When doing this
ioctl with IFF_ATTACH_QUEUE, the queue were enabled in the linux kernel.
Signed-off-by: Jason Wang
---
net/tap-linux.h |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/tap-linux.h b/net/tap-linux.h
only done when
the tap was enabled.
Signed-off-by: Jason Wang
---
include/net/tap.h |2 ++
net/tap-win32.c | 10 ++
net/tap.c | 43 ---
3 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/include/net/tap.h b/include/net
e multiqueue nic support, an N peers of NetClientState
were built up.
A new parameter, mq_required were introduce in tap_open() to create multiqueue
tap fds.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 -
net/tap-aix.c |3 +-
net/tap-bsd.c |3 +-
net/tap-haiku.c |
out of the starting/stopping of a specific vhost
thread. The vhost_net_{start|stop}() were renamed to
vhost_net_{start|stop}_one(), and a new vhost_net_{start|stop}() were introduced
to configure the guest notifiers and start/stop all vhost/vhost_net devices.
Signed-off-by: Jason Wang
---
hw
To support multiqueue virtio-net, the first step is to separate the virtqueue
related fields from VirtIONet to a new structure VirtIONetQueue. The following
patches will add an array of VirtIONetQueue to VirtIONet based on this patch.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 195
On 01/30/2013 07:03 AM, Michael S. Tsirkin wrote:
> On Tue, Jan 29, 2013 at 04:55:25PM -0600, Anthony Liguori wrote:
>> "Michael S. Tsirkin" writes:
>>
>>> On Tue, Jan 29, 2013 at 08:10:26PM +, Blue Swirl wrote:
>>>> On Tue, Jan 29, 2013 at 1:50
9380.43 403.8 9379.78 399.13 9382.42 393.55
16384 2 9367.69 406.93 9415.04 312.68 9409.29 300.9
16384 4 9391.96 405.17 9695.12 310.54 9423.76 223.47
Jason Wang (22):
net: tap: using bool instead of bitfield
net: tap: use abort() instead of assert(0)
net: introduce qemu_get_queue()
net: in
To allow allocating an array of NetClientState and free it once, this patch
introduces destructor of NetClientState. Which could do type specific free,
which could be used by multiqueue to free the array once.
Signed-off-by: Jason Wang
---
include/net/net.h |2 ++
net/net.c | 17
IFF_DETACH_QUEUE, the queue were disabled in the linux kernel. When doing this
ioctl with IFF_ATTACH_QUEUE, the queue were enabled in the linux kernel.
Signed-off-by: Jason Wang
---
net/tap-linux.h |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/net/tap-linux.h b/net/tap-linux.h
To support multiqueue, this patch introduces a helper qemu_get_nic() to get
NICState from a NetClientState. The following patches would refactor this helper
to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|8
hw/dp8393x.c|6 +++---
hw
In multiqueue, all NetClientState that belongs to the same netdev or nic has the
same id. So this patches introduces an helper qemu_find_net_clients_except()
which finds all NetClientState with the same id. This will be used by multiqueue
networking.
Signed-off-by: Jason Wang
---
include/net
Signed-off-by: Jason Wang
---
hw/virtio-net.c |2 +-
include/net/tap.h |4 ++--
net/tap-win32.c |6 +++---
net/tap.c | 38 ++
4 files changed, 24 insertions(+), 26 deletions(-)
diff --git a/hw/virtio-net.c b/hw/virtio-net.c
index
-by: Jason Wang
---
hw/e1000.c |2 +-
hw/eepro100.c|2 +-
hw/ne2000.c |2 +-
hw/pcnet-pci.c |2 +-
hw/rtl8139.c |2 +-
hw/usb/dev-network.c |2 +-
hw/virtio-net.c |2 +-
hw/xen_nic.c |2 +-
include/net/net.h
This patch separates the setup of NetClientState from its allocation, this will
allow allocating an arrays of NetClientState and does the initialization one by
one which is what multiqueue needs.
Signed-off-by: Jason Wang
---
net/net.c | 29 +++--
1 files changed, 19
is only supported
in Linux, return error on other platforms.
Signed-off-by: Jason Wang
---
net/tap-aix.c | 10 ++
net/tap-bsd.c | 11 +++
net/tap-haiku.c | 11 +++
net/tap-linux.c | 52
net/tap
only done when
the tap was enabled.
Signed-off-by: Jason Wang
---
include/net/tap.h |2 ++
net/tap-win32.c | 10 ++
net/tap.c | 43 ---
3 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/include/net/tap.h b/include/net
e multiqueue nic support, an N peers of NetClientState
were built up.
A new parameter, mq_required were introduce in tap_open() to create multiqueue
tap fds.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 -
net/tap-aix.c |3 +-
net/tap-bsd.c |3 +-
net/tap-haiku.c |
allowed.
Signed-off-by: Jason Wang
---
hw/dp8393x.c|2 +-
hw/mcf_fec.c|2 +-
hw/qdev-properties-system.c | 46 +++---
hw/qdev-properties.h|6 +-
include/net/net.h | 18 +--
net/net.c | 113
This patch factors out the common initialization of tap into a new helper
net_init_tap_one(). This will be used by multiqueue tap patches.
Signed-off-by: Jason Wang
---
net/tap.c | 130 ++---
1 files changed, 73 insertions(+), 57
Signed-off-by: Jason Wang
---
net/tap-linux.c |4 ++--
net/tap-win32.c |2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/net/tap-linux.c b/net/tap-linux.c
index 059f5f3..0a6acc7 100644
--- a/net/tap-linux.c
+++ b/net/tap-linux.c
@@ -164,7 +164,7 @@ int
To support multiqueue, the patch introduce a helper qemu_get_queue()
which is used to get the NetClientState of a device. The following patches would
refactor this helper to support multiqueue.
Signed-off-by: Jason Wang
---
hw/cadence_gem.c|9 +++--
hw/dp8393x.c|9
its name after
creating the first queue.
Only linux has this support since it's the only platform that supports
multiqueue tap.
Signed-off-by: Jason Wang
---
include/net/tap.h |1 +
net/tap-aix.c |6 ++
net/tap-bsd.c |4
net/tap-haiku.c |4
net/tap-li
Some device (such as virtio-net) needs the ability to destroy or re-order the
virtqueues, this patch adds a helper to do this.
Signed-off-by: Jason Wang
---
hw/virtio.c |9 +
hw/virtio.h |2 ++
2 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw
This patch implements both userspace and vhost support for multiple queue
virtio-net (VIRTIO_NET_F_MQ). This is done by introducing an array of
VirtIONetQueue to VirtIONet.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 303 +++
hw/virtio
Add a queue_index to VirtQueue and a helper to fetch it, this could be used by
multiqueue supported device.
Signed-off-by: Jason Wang
---
hw/virtio.c |8
hw/virtio.h |1 +
2 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/hw/virtio.c b/hw/virtio.c
index d8c77b0
This patch add migration support for multiqueue virtio-net. Instead of bumping
the version, we conditionally send the info of multiqueue only when the device
support more than one queue to maintain the backward compatibility.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 35
out of the starting/stopping of a specific vhost
thread. The vhost_net_{start|stop}() were renamed to
vhost_net_{start|stop}_one(), and a new vhost_net_{start|stop}() were introduced
to configure the guest notifiers and start/stop all vhost/vhost_net devices.
Signed-off-by: Jason Wang
---
hw
To support multiqueue virtio-net, the first step is to separate the virtqueue
related fields from VirtIONet to a new structure VirtIONetQueue. The following
patches will add an array of VirtIONetQueue to VirtIONet based on this patch.
Signed-off-by: Jason Wang
---
hw/virtio-net.c | 195
Disable multiqueue support for pre 1.4.
Signed-off-by: Jason Wang
---
hw/pc_piix.c |4
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/hw/pc_piix.c b/hw/pc_piix.c
index b9a9b2e..84069b1 100644
--- a/hw/pc_piix.c
+++ b/hw/pc_piix.c
@@ -309,6 +309,10 @@ static QEMUMachine
On 01/31/2013 02:29 AM, Eric Blake wrote:
> On 01/30/2013 04:12 AM, Jason Wang wrote:
>
>> With this changes, user could start a multiqueue virtio-net device through
>>
>> ./qemu -netdev tap,id=hn0,queues=2,vhost=on -device virtio-net-pci,netdev=hn0
>>
>> Manag
1 - 100 of 6684 matches
Mail list logo