[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 2/4] virtio-scsi: default num_queues to -smp N
From: |
Cornelia Huck |
Subject: |
Re: [PATCH v2 2/4] virtio-scsi: default num_queues to -smp N |
Date: |
Mon, 27 Jan 2020 14:10:31 +0100 |
On Fri, 24 Jan 2020 10:01:57 +0000
Stefan Hajnoczi <address@hidden> wrote:
> Automatically size the number of request virtqueues to match the number
"If the pci transport is used, ..." ?
> of vCPUs. This 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.
"For other transports, the number of request queues continues to
default to 1." ?
>
> Signed-off-by: Stefan Hajnoczi <address@hidden>
> ---
> 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 ++++++++--
> include/hw/virtio/virtio-scsi.h | 2 ++
> 8 files changed, 38 insertions(+), 9 deletions(-)
>
(...)
> diff --git a/hw/virtio/vhost-scsi-pci.c b/hw/virtio/vhost-scsi-pci.c
> index e8dfbfc60f..38a8f0c3ef 100644
> --- a/hw/virtio/vhost-scsi-pci.c
> +++ b/hw/virtio/vhost-scsi-pci.c
> @@ -17,6 +17,7 @@
> #include "qemu/osdep.h"
>
> #include "standard-headers/linux/virtio_pci.h"
> +#include "hw/boards.h"
> #include "hw/qdev-properties.h"
> #include "hw/virtio/vhost-scsi.h"
> #include "qapi/error.h"
> @@ -47,10 +48,15 @@ static void vhost_scsi_pci_realize(VirtIOPCIProxy
> *vpci_dev, Error **errp)
> {
> VHostSCSIPCI *dev = VHOST_SCSI_PCI(vpci_dev);
> DeviceState *vdev = DEVICE(&dev->vdev);
> - VirtIOSCSICommon *vs = VIRTIO_SCSI_COMMON(vdev);
> + VirtIOSCSIConf *conf = &dev->vdev.parent_obj.parent_obj.conf;
> +
> + /* 1:1 vq to vcpu mapping is ideal because it avoids IPIs */
> + if (conf->num_queues == VIRTIO_SCSI_AUTO_NUM_QUEUES) {
> + conf->num_queues = current_machine->smp.cpus;
This now maps the request vqs 1:1 to the vcpus. What about the fixed
vqs? If they don't really matter, amend the comment to explain that?
> + }
>
> if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) {
> - vpci_dev->nvectors = vs->conf.num_queues + 3;
> + vpci_dev->nvectors = conf->num_queues + VIRTIO_SCSI_VQ_NUM_FIXED + 1;
> }
>
> qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus));
[PATCH v2 3/4] virtio-blk: default num_queues to -smp N, Stefan Hajnoczi, 2020/01/24
[PATCH v2 4/4] vhost-user-blk: default num_queues to -smp N, Stefan Hajnoczi, 2020/01/24
Re: [PATCH v2 0/4] virtio-pci: enable blk and scsi multi-queue by default, Stefano Garzarella, 2020/01/27