From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Amit Shah <amit.shah@redhat.com>,
Alexander Graf <agraf@suse.de>,
qemu-devel@nongnu.org, Keith Busch <keith.busch@intel.com>,
Christian Borntraeger <borntraeger@de.ibm.com>,
qemu-ppc@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Cornelia Huck <cornelia.huck@de.ibm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH V7 00/16] Support more virtio queues
Date: Mon, 27 Apr 2015 21:06:33 +0200 [thread overview]
Message-ID: <20150427210513-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <1429770109-23873-1-git-send-email-jasowang@redhat.com>
On Thu, Apr 23, 2015 at 02:21:33PM +0800, Jason Wang wrote:
> We current limit the max virtio queues to 64. This is not sufficient
> to support multiqueue devices (e.g recent Linux support up to 256
> tap queues). So this series tries to let virtio to support more
> queues.
I put some of these in my tree.
Pls check it out to make sure I didn't make mistakes,
and send patches on top.
> No much works need to be done except:
>
> - Introducing transport specific queue limitation. This is used to
> simplify increasing the limitation for one transport without
> harming the rest.
> - Let each virtio transport to use specific limit.
> - Speedup the MSI-X masking and unmasking through per vector queue
> list, and increase the maximum MSI-X vectors supported by qemu.
> - With the above enhancements, increase the maximum number of
> virtqueues supported by PCI from 64 to 1024.
> - Compat legacy virtio queue limit
>
> With this patch, we can support up to 256 queues. Since x86 can only
> allow about 240 interrupt vectors for MSI-X, current Linux driver can
> only have about 80 queue pairs has their private MSI-X interrupt
> vectors. With sharing IRQ with queue pairs (RFC posted in
> https://lkml.org/lkml/2014/12/25/169), Linux driver can have up
> to about 186 queue pairs has their private MSI-X interrupt vectors.
>
> Stress/migration test on virtio-pci, compile test on other
> targets. And make check on s390x-softmmu and ppc64-softmmu.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Alexander Graf <agraf@suse.de>
> Cc: Keith Busch <keith.busch@intel.com>
> Cc: Kevin Wolf <kwolf@redhat.com>
> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
> Cc: Amit Shah <amit.shah@redhat.com>
> Cc: qemu-ppc@nongnu.org
>
> Please review
>
> Thanks
>
> Changes from V6:
> - Tweak some commit logs
> - Replace the missed VIRTIO_PCI_MAX in ccw with a bus specific limit
> - Bump the pci queue limit from 513 to 1024
>
> Changes from V5:
> - Rebase to HEAD
> - Drop the patch that introduce helper to get vq index since there has
> already one
> - Don't try to solve the migration compatibility issue for invalid
> configuration like vectors > 128 with only 64 virto queues. This is
> done by let msix calaucalte the correct bar size and drop the patch
> 18 that intrdouces the auto_msix_bar_size.
> - Cleanup the bar size and pba offset calcuation code
> - Add a comment to explain the new virtio pci queue limit number 513
>
> Changes from V4:
> - Drop the patch of bus limitation validation and send it as an
> independent patch
> - Don't let the virtio-pci to calculate the MSI-X bar size, instead,
> tell the msix code whether or not to use legacy bar size and let it
> to do this
> - Make sure the MSI-X bar size is at least 4K
> - Subject typos fixes for patch 8
> - Mention adapter routes changes in the commit log of patch 9
> - Only use the vector to queue list for virtio-pci to avoid the
> unnecessary possible overhead on other transport.
>
> Changes from V3:
> - rebase to master and target to 2.4
> - handling compat issues for spapr
> - fixes for hmp command completion when we have a nic with 256 queues
> - using VIRTIO_NO_VECTOR instead of 0 for invalid virtqueue in
> virtio-ccw
> - fix compile issues for ppc64-softmmu
> - don't export VIRTIO_CCW_QUEUE_MAX by introducing a gsi limit and
> inherit in ccw
> - use transport specific queue limit in virtio-serial
> - correct the stale comment for AdapterRoutes and move it to ccw patch
> - replace 128 with queue_max + 64 and add a comment for this in
> virtio_ccw_notify()
>
> Changes from V2:
> - move transport specific limitation to their implementation. (The
> left is VIRTIO_CCW_QUEUE_MAX since I fail to find a common header
> files other than virtio.h)
> - use virtio_get_queue_ma) if possible in virtio.c
> - AdapterRoutes should use ccw limit
> - introduce a vector to queue mapping for virito devices and speedup
> the MSI-X masking and unmasking through this.
>
> Changes from V1:
> - add a validation against the bus limitation
> - switch to use a bus specific queue limit instead of a global one,
> this will allow us to just increase the limit of one transport
> without disturbing others.
> - only increase the queue limit of virtio-pci
> - limit the maximum number of virtio queues to 64 for legacy machine
> types
>
> Jason Wang (16):
> virtio-net: fix the upper bound when trying to delete queues
> pc: add 2.4 machine types
> spapr: add machine type specific instance init function
> ppc: spapr: add 2.4 machine type
> monitor: replace the magic number 255 with MAX_QUEUE_NUM
> monitor: check return value of qemu_find_net_clients_except()
> virtio-ccw: using VIRTIO_NO_VECTOR instead of 0 for invalid virtqueue
> virtio: introduce bus specific queue limit
> virtio-ccw: introduce ccw specific queue limit
> virtio-s390: switch to bus specific queue limit
> virtio-mmio: switch to bus specific queue limit
> virtio-pci: switch to use bus specific queue limit
> virtio: introduce vector to virtqueues mapping
> virtio-pci: speedup MSI-X masking and unmasking
> virtio-pci: increase the maximum number of virtqueues to 513
> pci: remove hard-coded bar size in msix_init_exclusive_bar()
>
> hw/char/virtio-serial-bus.c | 2 +-
> hw/i386/pc_piix.c | 34 ++++++++++++++++---
> hw/i386/pc_q35.c | 31 ++++++++++++++++--
> hw/net/virtio-net.c | 6 ++--
> hw/pci/msix.c | 30 ++++++++++-------
> hw/ppc/spapr.c | 59 +++++++++++++++++++++++++++++++--
> hw/s390x/s390-virtio-bus.c | 7 ++--
> hw/s390x/s390-virtio-ccw.c | 7 ++--
> hw/s390x/virtio-ccw.c | 22 ++++++++-----
> hw/scsi/virtio-scsi.c | 4 +--
> hw/virtio/virtio-mmio.c | 7 ++--
> hw/virtio/virtio-pci.c | 65 +++++++++++++++++++++++--------------
> hw/virtio/virtio.c | 74 +++++++++++++++++++++++++++++++++---------
> include/hw/s390x/s390_flic.h | 4 ++-
> include/hw/virtio/virtio-bus.h | 2 ++
> include/hw/virtio/virtio.h | 6 ++--
> monitor.c | 25 +++++++-------
> 17 files changed, 291 insertions(+), 94 deletions(-)
>
> --
> 2.1.0
prev parent reply other threads:[~2015-04-27 19:06 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-23 6:21 [Qemu-devel] [PATCH V7 00/16] Support more virtio queues Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 01/16] virtio-net: fix the upper bound when trying to delete queues Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 02/16] pc: add 2.4 machine types Jason Wang
2015-04-27 11:03 ` Michael S. Tsirkin
2015-04-28 3:12 ` Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 03/16] spapr: add machine type specific instance init function Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 04/16] ppc: spapr: add 2.4 machine type Jason Wang
2015-04-27 11:03 ` Michael S. Tsirkin
2015-04-27 13:14 ` Alexander Graf
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 05/16] monitor: replace the magic number 255 with MAX_QUEUE_NUM Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 06/16] monitor: check return value of qemu_find_net_clients_except() Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 07/16] virtio-ccw: using VIRTIO_NO_VECTOR instead of 0 for invalid virtqueue Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 08/16] virtio: introduce bus specific queue limit Jason Wang
2015-04-27 11:05 ` Michael S. Tsirkin
2015-04-28 3:14 ` Jason Wang
2015-04-28 5:13 ` Michael S. Tsirkin
2015-04-28 6:13 ` Jason Wang
2015-04-28 7:14 ` Michael S. Tsirkin
2015-04-28 8:04 ` Cornelia Huck
2015-04-28 8:16 ` Michael S. Tsirkin
2015-04-28 10:40 ` Cornelia Huck
2015-04-28 10:55 ` Michael S. Tsirkin
2015-04-28 11:39 ` Cornelia Huck
2015-04-28 12:47 ` Michael S. Tsirkin
2015-04-28 13:33 ` Cornelia Huck
2015-04-28 14:40 ` Michael S. Tsirkin
2015-05-13 7:51 ` Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 09/16] virtio-ccw: introduce ccw " Jason Wang
2015-04-23 10:59 ` Cornelia Huck
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 10/16] virtio-s390: switch to bus " Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 11/16] virtio-mmio: " Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 12/16] virtio-pci: switch to use " Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 13/16] virtio: introduce vector to virtqueues mapping Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 14/16] virtio-pci: speedup MSI-X masking and unmasking Jason Wang
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 15/16] virtio-pci: increase the maximum number of virtqueues to 513 Jason Wang
2015-04-23 11:24 ` Cornelia Huck
2015-04-28 3:05 ` Jason Wang
2015-04-27 11:02 ` Michael S. Tsirkin
2015-04-28 3:12 ` Jason Wang
2015-04-28 7:17 ` Michael S. Tsirkin
2015-05-13 7:47 ` Jason Wang
2015-05-13 8:16 ` Michael S. Tsirkin
2015-05-14 18:54 ` Eduardo Habkost
2015-04-23 6:21 ` [Qemu-devel] [PATCH V7 16/16] pci: remove hard-coded bar size in msix_init_exclusive_bar() Jason Wang
2015-04-23 11:27 ` [Qemu-devel] [PATCH V7 00/16] Support more virtio queues Cornelia Huck
2015-04-28 3:14 ` Jason Wang
2015-04-27 19:06 ` Michael S. Tsirkin [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150427210513-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=agraf@suse.de \
--cc=amit.shah@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=jasowang@redhat.com \
--cc=keith.busch@intel.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rth@twiddle.net \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).