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@de.ibm.com, Paolo Bonzini <pbonzini@redhat.com>,
Richard Henderson <rth@twiddle.net>
Subject: Re: [Qemu-devel] [PATCH V4 00/19] Support more virtio queues
Date: Thu, 19 Mar 2015 08:32:31 +0100 [thread overview]
Message-ID: <20150319083220-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <1426742693.5002.5@smtp.corp.redhat.com>
On Thu, Mar 19, 2015 at 01:24:53PM +0800, Jason Wang wrote:
>
>
> On Wed, Mar 18, 2015 at 8:58 PM, Michael S. Tsirkin <mst@redhat.com> wrote:
> >On Wed, Mar 18, 2015 at 05:34:50PM +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.
> >> No much works need to be done except:
> >> - Introducing transport specific queue limitation.
> >> - 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 513.
> >> - Compat the changes for legacy machine types.
> >
> >What are the compatibility considerations here?
>
> Two considerations:
> 1) To keep msix bar size to 4K for legacy machine types
> 2) Limit the pci queue max to 64 for legacy machine types
2 seems not relevant to me.
> >
> >
> >> 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 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_max() 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 (19):
> >> 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-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-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 | 2 +-
> >> hw/i386/pc_piix.c | 42 ++++++++++++++++++++---
> >> hw/i386/pc_q35.c | 39 +++++++++++++++++++--
> >> hw/misc/ivshmem.c | 2 +-
> >> hw/net/virtio-net.c | 9 ++++-
> >> hw/pci/msix.c | 18 ++++------
> >> hw/ppc/spapr.c | 70
> >>+++++++++++++++++++++++++++++++++++--
> >> hw/s390x/s390-virtio-bus.c | 7 ++--
> >> hw/s390x/s390-virtio-ccw.c | 7 ++--
> >> hw/s390x/virtio-ccw.c | 20 +++++++----
> >> 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 | 75
> >>+++++++++++++++++++++++++++++++---------
> >> include/hw/compat.h | 11 ++++++
> >> include/hw/pci/msix.h | 2 +-
> >> include/hw/s390x/s390_flic.h | 4 ++-
> >> include/hw/virtio/virtio-bus.h | 2 ++
> >> include/hw/virtio/virtio.h | 7 ++--
> >> monitor.c | 25 ++++++++------
> >> 22 files changed, 339 insertions(+), 97 deletions(-)
> >> -- 2.1.0
next prev parent reply other threads:[~2015-03-19 7:32 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-18 9:34 [Qemu-devel] [PATCH V4 00/19] Support more virtio queues Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 01/19] pc: add 2.4 machine types Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 02/19] spapr: add machine type specific instance init function Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 03/19] ppc: spapr: add 2.4 machine type Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 04/19] monitor: replace the magic number 255 with MAX_QUEUE_NUM Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 05/19] monitor: check return value of qemu_find_net_clients_except() Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 06/19] virtio-ccw: using VIRTIO_NO_VECTOR instead of 0 for invalid virtqueue Jason Wang
2015-03-18 13:08 ` Michael S. Tsirkin
2015-03-20 7:39 ` Cornelia Huck
2015-03-21 18:27 ` Michael S. Tsirkin
2015-03-23 9:02 ` Cornelia Huck
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 07/19] virtio-net: validate backend queue numbers against bus limitation Jason Wang
2015-03-18 13:05 ` Michael S. Tsirkin
2015-03-19 5:26 ` Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 08/19] virtio-net: fix the upper bound when trying to delete queues Jason Wang
2015-03-18 13:06 ` Michael S. Tsirkin
2015-03-19 5:28 ` Jason Wang
2015-03-18 9:34 ` [Qemu-devel] [PATCH V4 09/19] virito: introduce bus specific queue limit Jason Wang
2015-03-20 10:20 ` Cornelia Huck
2015-03-31 2:34 ` Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 10/19] virtio-ccw: introduce ccw " Jason Wang
2015-03-20 11:33 ` Cornelia Huck
2015-03-31 2:36 ` Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 11/19] virtio-s390: switch to bus " Jason Wang
2015-03-20 11:34 ` Cornelia Huck
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 12/19] virtio-mmio: " Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 13/19] virtio-pci: switch to use " Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 14/19] virtio: introduce vector to virtqueues mapping Jason Wang
2015-03-20 11:39 ` Cornelia Huck
2015-03-31 2:37 ` Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 15/19] virtio: introduce virtio_queue_get_index() Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 16/19] virtio-pci: speedup MSI-X masking and unmasking Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 17/19] virtio-pci: increase the maximum number of virtqueues to 513 Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 18/19] pci: remove hard-coded bar size in msix_init_exclusive_bar() Jason Wang
2015-03-18 12:52 ` Michael S. Tsirkin
2015-03-19 5:19 ` Jason Wang
2015-03-19 10:09 ` Michael S. Tsirkin
2015-03-20 5:43 ` Jason Wang
2015-03-18 9:35 ` [Qemu-devel] [PATCH V4 19/19] virtio-pci: introduce auto_msix_bar_size property Jason Wang
2015-03-18 12:57 ` Michael S. Tsirkin
2015-03-19 5:23 ` Jason Wang
2015-03-19 10:01 ` Michael S. Tsirkin
2015-03-20 5:35 ` Jason Wang
2015-03-19 5:23 ` Jason Wang
2015-03-19 10:02 ` Michael S. Tsirkin
2015-03-20 5:38 ` Jason Wang
2015-03-18 12:58 ` [Qemu-devel] [PATCH V4 00/19] Support more virtio queues Michael S. Tsirkin
2015-03-19 5:24 ` Jason Wang
2015-03-19 7:32 ` Michael S. Tsirkin [this message]
2015-03-19 7:42 ` Jason Wang
2015-03-19 9:23 ` Michael S. Tsirkin
2015-03-20 5:11 ` 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=20150319083220-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).