From: Cornelia Huck <cohuck@redhat.com>
To: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>, Fam Zheng <fam@euphon.net>,
Eduardo Habkost <ehabkost@redhat.com>,
qemu-block@nongnu.org, "Michael S. Tsirkin" <mst@redhat.com>,
Pankaj Gupta <pankaj.gupta.linux@gmail.com>,
qemu-devel@nongnu.org,
Raphael Norwitz <raphael.norwitz@nutanix.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Max Reitz <mreitz@redhat.com>
Subject: Re: [PATCH v5 3/5] virtio-scsi: default num_queues to -smp N
Date: Tue, 7 Jul 2020 17:44:53 +0200 [thread overview]
Message-ID: <20200707174453.50c3ec85.cohuck@redhat.com> (raw)
In-Reply-To: <20200706135650.438362-4-stefanha@redhat.com>
On Mon, 6 Jul 2020 14:56:48 +0100
Stefan Hajnoczi <stefanha@redhat.com> wrote:
Maybe mention 'pci' in the subject as well?
> Automatically size the number of virtio-scsi-pci, vhost-scsi-pci, and
> vhost-user-scsi-pci request virtqueues to match the number of vCPUs.
> Other transports continue to default to 1 request virtqueue.
>
> A 1:1 virtqueue:vCPU mapping ensures that completion interrupts are
> handled on the same vCPU that submitted the request. No IPI is
> necessary to complete an I/O request and performance is improved. The
> maximum number of MSI-X vectors and virtqueues limit are respected.
>
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
> ---
> include/hw/virtio/virtio-scsi.h | 2 ++
> hw/core/machine.c | 3 +++
> hw/scsi/vhost-scsi.c | 3 ++-
> hw/scsi/vhost-user-scsi.c | 3 ++-
> hw/scsi/virtio-scsi.c | 6 +++++-
> hw/virtio/vhost-scsi-pci.c | 10 +++++++---
> hw/virtio/vhost-user-scsi-pci.c | 10 +++++++---
> hw/virtio/virtio-scsi-pci.c | 10 +++++++---
> 8 files changed, 35 insertions(+), 12 deletions(-)
(...)
> diff --git a/hw/virtio/virtio-scsi-pci.c b/hw/virtio/virtio-scsi-pci.c
> index 3ff9eb7ef6..fa4b3bfb50 100644
> --- a/hw/virtio/virtio-scsi-pci.c
> +++ b/hw/virtio/virtio-scsi-pci.c
> @@ -46,13 +46,17 @@ static void virtio_scsi_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp)
> {
> VirtIOSCSIPCI *dev = VIRTIO_SCSI_PCI(vpci_dev);
> DeviceState *vdev = DEVICE(&dev->vdev);
> - VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> DeviceState *proxy = DEVICE(vpci_dev);
> + VirtIOSCSIConf *conf = &dev->vdev.parent_obj.conf;
> char *bus_name;
>
> + if (conf->num_queues == VIRTIO_SCSI_AUTO_NUM_QUEUES) {
> + conf->num_queues =
> + virtio_pci_optimal_num_queues(VIRTIO_SCSI_VQ_NUM_FIXED);
> + }
> +
> if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> - vpci_dev->nvectors = vs->conf.num_queues +
> - VIRTIO_SCSI_VQ_NUM_FIXED + 1;
> + vpci_dev->nvectors = conf->num_queues + VIRTIO_SCSI_VQ_NUM_FIXED + 1;
> }
>
> /*
One corner case where the setup may end up being a bit odd is a
situation where nvectors was specified, but num_queues was not, and the
device suddenly ends up with more queues than vectors. But I don't see
a reason why you would want to specify nvectors but not num_queues in a
real word scenario, so I think we can ignore that corner case.
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
next prev parent reply other threads:[~2020-07-07 15:46 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-06 13:56 [PATCH v5 0/5] virtio-pci: enable blk and scsi multi-queue by default Stefan Hajnoczi
2020-07-06 13:56 ` [PATCH v5 1/5] virtio-pci: add virtio_pci_optimal_num_queues() helper Stefan Hajnoczi
2020-07-07 15:46 ` Cornelia Huck
2020-07-06 13:56 ` [PATCH v5 2/5] virtio-scsi: introduce a constant for fixed virtqueues Stefan Hajnoczi
2020-07-06 13:56 ` [PATCH v5 3/5] virtio-scsi: default num_queues to -smp N Stefan Hajnoczi
2020-07-07 15:44 ` Cornelia Huck [this message]
2020-07-08 13:05 ` Stefan Hajnoczi
2020-07-08 16:50 ` Cornelia Huck
2020-07-13 10:22 ` Stefan Hajnoczi
2020-07-08 13:08 ` Stefan Hajnoczi
2020-07-06 13:56 ` [PATCH v5 4/5] virtio-blk: " Stefan Hajnoczi
2020-07-06 13:56 ` [PATCH v5 5/5] vhost-user-blk: " Stefan Hajnoczi
2020-07-09 18:02 ` Raphael Norwitz
2020-07-10 12:53 ` Stefan Hajnoczi
2020-07-10 18:48 ` Raphael Norwitz
2020-07-08 10:59 ` [PATCH v5 0/5] virtio-pci: enable blk and scsi multi-queue by default Michael S. Tsirkin
2020-07-08 12:59 ` Stefan Hajnoczi
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=20200707174453.50c3ec85.cohuck@redhat.com \
--to=cohuck@redhat.com \
--cc=ehabkost@redhat.com \
--cc=fam@euphon.net \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=mst@redhat.com \
--cc=pankaj.gupta.linux@gmail.com \
--cc=pbonzini@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=raphael.norwitz@nutanix.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.