From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jason Wang <jasowang@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Stefan Hajnoczi <stefanha@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>,
Anthony Liguori <aliguori@amazon.com>,
Cornelia Huck <cornelia.huck@de.ibm.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH V3 00/14] Support more virtio queues
Date: Thu, 12 Mar 2015 10:28:00 +0100 [thread overview]
Message-ID: <20150312102731-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <1425534531-6305-1-git-send-email-jasowang@redhat.com>
On Thu, Mar 05, 2015 at 01:48:37PM +0800, Jason Wang wrote:
> We current limit the max virtio queues to 64. This is not sufficient
> to support multiqueue deivces (e.g recent Linux support up to 256
> tap queues). So this series try to let virtio to support more queues.
For some reason I was Cc'd only on some patches.
If you want me to apply series, pls Cc on all of them.
> No much works need to be done except:
>
> - Patch 1 add a check to validate the queues supported by backend
> against the virtio queue limitation
> - Patch 2 fixes a bug in virtio_del_queue()
> - Patch 3 introdues a bus specific queue limitation
> - Patch 4 - Patch 8 let each transport to use bus specific queue
> limitation instead of VIRTIO_PCI_QUEUE_MAX
> - Patch 9 introduces a map from vector to queues that use this vector
> - Patch 10 introduces a helpr for get the queue index
> - Patch 11 speedups the MSI-X masking and unmasking through the vector
> to queues mapping that introduced by Patch 9
> - Patch 12 increase the maximum number of queues supported by
> virtio-pci from 64 to 513, and deal with the migration compatibility
> with the changes.
> - Patch 13 tries to remove the hard coded MSI-X bar size (4096) and
> allow up to 2048 MSI-X entries.
> - Patch 14 add a boolean property to let the virtio-net can calculate
> the MSI-X bar size based on the number of MSI-X vectors and keep
> migration compatibility with legacy version whose bar size is 4096.
>
> 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/make check on
> s390x-softmmu.
>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Richard Henderson <rth@twiddle.net>
> Cc: Anthony Liguori <aliguori@amazon.com>
> 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: Anthony Liguori <aliguori@amazon.com>
> Cc: Christian Borntraeger <borntraeger@de.ibm.com>
> Cc: Cornelia Huck <cornelia.huck@de.ibm.com>
> Cc: Amit Shah <amit.shah@redhat.com>
>
> Please review
>
> Thanks
>
> 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_max() if possbile 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 (14):
> virtio-net: validate backend queue numbers against bus limitation
> virtio-net: fix the upper bound when trying to delete queues
> virito: introduce bus specific queue limit
> virtio-ccw: introduce ccw specific queue limit
> virtio-s390: switch to bus specific queue limit
> virtio-serial-bus: 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: introduce virtio_queue_get_index()
> 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()
> virtio-pci: introduce auto_msix_bar_size property
>
> hw/block/nvme.c | 2 +-
> hw/char/virtio-serial-bus.c | 4 ++-
> hw/i386/pc_piix.c | 10 ++++++
> hw/i386/pc_q35.c | 9 +++++
> hw/misc/ivshmem.c | 2 +-
> hw/net/virtio-net.c | 9 ++++-
> hw/pci/msix.c | 18 ++++------
> hw/ppc/spapr.c | 5 +++
> hw/s390x/s390-virtio-bus.c | 7 ++--
> hw/s390x/s390-virtio-ccw.c | 7 ++--
> hw/s390x/virtio-ccw.c | 12 ++++---
> hw/scsi/virtio-scsi.c | 4 +--
> hw/virtio/virtio-mmio.c | 7 ++--
> hw/virtio/virtio-pci.c | 78 ++++++++++++++++++++++++++++--------------
> hw/virtio/virtio-pci.h | 3 ++
> hw/virtio/virtio.c | 74 ++++++++++++++++++++++++++++++---------
> include/hw/compat.h | 8 +++++
> include/hw/pci/msix.h | 2 +-
> include/hw/s390x/s390_flic.h | 2 +-
> include/hw/virtio/virtio-bus.h | 2 ++
> include/hw/virtio/virtio.h | 7 +++-
> 21 files changed, 199 insertions(+), 73 deletions(-)
>
> --
> 2.1.0
next prev parent reply other threads:[~2015-03-12 9:28 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-05 5:48 [Qemu-devel] [PATCH V3 00/14] Support more virtio queues Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 01/14] virtio-net: validate backend queue numbers against bus limitation Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 02/14] virtio-net: fix the upper bound when trying to delete queues Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 03/14] virito: introduce bus specific queue limit Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 04/14] virtio-ccw: introduce ccw " Jason Wang
2015-03-06 12:13 ` Cornelia Huck
2015-03-09 7:13 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 05/14] virtio-s390: switch to bus " Jason Wang
2015-03-06 12:18 ` Cornelia Huck
2015-03-09 7:17 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 06/14] virtio-serial-bus: " Jason Wang
2015-03-06 12:27 ` Cornelia Huck
2015-03-09 7:26 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 07/14] virtio-mmio: " Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 08/14] virtio-pci: switch to use " Jason Wang
2015-03-06 12:28 ` Cornelia Huck
2015-03-09 7:32 ` Jason Wang
2015-03-09 8:04 ` Cornelia Huck
2015-03-09 8:58 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 09/14] virtio: introduce vector to virtqueues mapping Jason Wang
2015-03-06 12:55 ` Cornelia Huck
2015-03-09 7:41 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 10/14] virtio: introduce virtio_queue_get_index() Jason Wang
2015-03-05 6:12 ` Fam Zheng
2015-03-06 2:49 ` Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 11/14] virtio-pci: speedup MSI-X masking and unmasking Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 12/14] virtio-pci: increase the maximum number of virtqueues to 513 Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 13/14] pci: remove hard-coded bar size in msix_init_exclusive_bar() Jason Wang
2015-03-05 5:48 ` [Qemu-devel] [PATCH V3 14/14] virtio-pci: introduce auto_msix_bar_size property Jason Wang
2015-03-12 9:28 ` Michael S. Tsirkin [this message]
2015-03-12 9:33 ` [Qemu-devel] [PATCH V3 00/14] Support more virtio queues Jason Wang
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=20150312102731-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=agraf@suse.de \
--cc=aliguori@amazon.com \
--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=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).