[Qemu-devel] [net-next RFC V4 PATCH 3/4] virtio: introduce a method to get the irq of a specific virtqueue

2012-06-25 Thread Jason Wang
. 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

[Qemu-devel] [net-next RFC V4 PATCH 4/4] virtio_net: multiqueue support

2012-06-25 Thread Jason Wang
: - 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

[Qemu-devel] [RFC V2 PATCH 0/4] Multiqueue support for tap and virtio-net/vhost

2012-06-25 Thread Jason Wang
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

[Qemu-devel] [RFC V2 PATCH 1/4] option: introduce qemu_get_opt_all()

2012-06-25 Thread Jason Wang
: 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

[Qemu-devel] [RFC V2 PATCH 2/4] tap: multiqueue support

2012-06-25 Thread Jason Wang
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

[Qemu-devel] [RFC V2 PATCH 3/4] net: multiqueue support

2012-06-25 Thread Jason Wang
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

[Qemu-devel] [RFC V2 PATCH 4/4] virtio-net: add multiqueue support

2012-06-25 Thread Jason Wang
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:

Re: [Qemu-devel] [net-next RFC V4 PATCH 3/4] virtio: introduce a method to get the irq of a specific virtqueue

2012-06-25 Thread Jason Wang
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

Re: [Qemu-devel] [RFC V2 PATCH 4/4] virtio-net: add multiqueue support

2012-07-02 Thread Jason Wang
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&

[Qemu-devel] [RFC V3 0/5] Multiqueue support for tap and virtio-net/vhost

2012-07-06 Thread Jason Wang
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

[Qemu-devel] [RFC V3 1/5] option: introduce qemu_get_opt_all()

2012-07-06 Thread Jason Wang
: 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

[Qemu-devel] [RFC V3 5/5] virtio-net: add multiqueue support

2012-07-06 Thread Jason Wang
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

[Qemu-devel] [RFC V3 2/5] tap: multiqueue support

2012-07-06 Thread Jason Wang
- 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

[Qemu-devel] [RFC V3 4/5] vhost: multiqueue support

2012-07-06 Thread Jason Wang
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

[Qemu-devel] [RFC V3 3/5] net: multiqueue support

2012-07-06 Thread Jason Wang
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

[Qemu-devel] [PATCH 00/12] Multiqueue virtio-net

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 09/12] virtio-net: separate virtqueue from VirtIONet

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 02/12] net: introduce qemu_get_queue()

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 03/12] net: introduce qemu_get_nic()

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 11/12] virtio-net: migration support for multiqueue

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 08/12] virtio: add a queue_index to VirtQueue

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 01/12] tap: multiqueue support

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 12/12] virtio-net: compat multiqueue support

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 05/12] net: multiqueue support

2012-12-28 Thread Jason Wang
-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

[Qemu-devel] [PATCH 06/12] vhost: multiqueue support

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 07/12] virtio: introduce virtio_queue_del()

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 04/12] net: intorduce qemu_del_nic()

2012-12-28 Thread Jason Wang
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

[Qemu-devel] [PATCH 10/12] virtio-net: multiqueue support

2012-12-28 Thread Jason Wang
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

Re: [Qemu-devel] [PATCH] add fd limitations for avoiding a buffer overflow

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 00/20] Multiqueue virtio-net

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 01/20] net: introduce qemu_get_queue()

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 07/20] net: multiqueue support

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 13/20] tap: multiqueue support

2013-01-25 Thread Jason Wang
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 |

[Qemu-devel] [PATCH V2 15/20] virtio: introduce virtio_del_queue()

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 14/20] vhost: multiqueue support

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 19/20] virtio-net: migration support for multiqueue

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 20/20] virtio-net: compat multiqueue support

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 18/20] virtio-net: multiqueue support

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 04/20] net: introduce qemu_find_net_clients_except()

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 09/20] tap: factor out common tap initialization

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 05/20] net: introduce qemu_net_client_setup()

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 16/20] virtio: add a queue_index to VirtQueue

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 10/20] tap: add Linux multiqueue support

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 12/20] tap: introduce a helper to get the name of an interface

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 17/20] virtio-net: separate virtqueue from VirtIONet

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 08/20] tap: import linux multiqueue constants

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 11/20] tap: support enabling or disabling a queue

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 06/20] net: introduce NetClientState destructor

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 02/20] net: introduce qemu_get_nic()

2013-01-25 Thread Jason Wang
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

[Qemu-devel] [PATCH V2 03/20] net: intorduce qemu_del_nic()

2013-01-25 Thread Jason Wang
-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

Re: [Qemu-devel] [PATCH V2 00/20] Multiqueue virtio-net

2013-01-27 Thread Jason Wang
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 >

Re: [Qemu-devel] [PATCH V2 00/20] Multiqueue virtio-net

2013-01-28 Thread Jason Wang
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

Re: [Qemu-devel] [PATCH V2 11/20] tap: support enabling or disabling a queue

2013-01-29 Thread Jason Wang
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

Re: [Qemu-devel] [PATCH V2 14/20] vhost: multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 00/20] Multiqueue virtio-net

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 03/20] net: intorduce qemu_del_nic()

2013-01-29 Thread Jason Wang
-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

[Qemu-devel] [PATCH V3 10/20] tap: add Linux multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 12/20] tap: introduce a helper to get the name of an interface

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 20/20] virtio-net: compat multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 06/20] net: introduce NetClientState destructor

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 02/20] net: introduce qemu_get_nic()

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 15/20] virtio: introduce virtio_del_queue()

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 05/20] net: introduce qemu_net_client_setup()

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 09/20] tap: factor out common tap initialization

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 04/20] net: introduce qemu_find_net_clients_except()

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 18/20] virtio-net: multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 19/20] virtio-net: migration support for multiqueue

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 01/20] net: introduce qemu_get_queue()

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 07/20] net: multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 16/20] virtio: add a queue_index to VirtQueue

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 08/20] tap: import linux multiqueue constants

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 11/20] tap: support enabling or disabling a queue

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 13/20] tap: multiqueue support

2013-01-29 Thread Jason Wang
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 |

[Qemu-devel] [PATCH V3 14/20] vhost: multiqueue support

2013-01-29 Thread Jason Wang
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

[Qemu-devel] [PATCH V3 17/20] virtio-net: separate virtqueue from VirtIONet

2013-01-29 Thread Jason Wang
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

Re: [Qemu-devel] [PATCH V2 11/20] tap: support enabling or disabling a queue

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 00/22] Multiqueue virtio-net

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 08/22] net: introduce NetClientState destructor

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 10/22] tap: import linux multiqueue constants

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 04/22] net: introduce qemu_get_nic()

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 06/22] net: introduce qemu_find_net_clients_except()

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 01/22] net: tap: using bool instead of bitfield

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 05/22] net: intorduce qemu_del_nic()

2013-01-30 Thread Jason Wang
-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

[Qemu-devel] [PATCH V4 07/22] net: introduce qemu_net_client_setup()

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 12/22] tap: add Linux multiqueue support

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 13/22] tap: support enabling or disabling a queue

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 15/22] tap: multiqueue support

2013-01-30 Thread Jason Wang
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 |

[Qemu-devel] [PATCH V4 09/22] net: multiqueue support

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 11/22] tap: factor out common tap initialization

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 02/22] net: tap: use abort() instead of assert(0)

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 03/22] net: introduce qemu_get_queue()

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 14/22] tap: introduce a helper to get the name of an interface

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 17/22] virtio: introduce virtio_del_queue()

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 20/22] virtio-net: multiqueue support

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 18/22] virtio: add a queue_index to VirtQueue

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 21/22] virtio-net: migration support for multiqueue

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 16/22] vhost: multiqueue support

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 19/22] virtio-net: separate virtqueue from VirtIONet

2013-01-30 Thread Jason Wang
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

[Qemu-devel] [PATCH V4 22/22] virtio-net: compat multiqueue support

2013-01-30 Thread Jason Wang
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

Re: [Qemu-devel] [PATCH V4 00/22] Multiqueue virtio-net

2013-01-30 Thread Jason Wang
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   2   3   4   5   6   7   8   9   10   >