[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/4] virtio-pci: enable blk and scsi multi-queue by default
From: |
Stefan Hajnoczi |
Subject: |
[PATCH v2 0/4] virtio-pci: enable blk and scsi multi-queue by default |
Date: |
Fri, 24 Jan 2020 10:01:55 +0000 |
v2:
* Let the virtio-DEVICE-pci device select num-queues because the optimal
multi-queue configuration may differ between virtio-pci, virtio-mmio, and
virtio-ccw [Cornelia]
Enabling multi-queue on virtio-pci storage devices improves performance on SMP
guests because the completion interrupt is handled on the vCPU that submitted
the I/O request. This avoids IPIs inside the guest.
Note that performance is unchanged in these cases:
1. Uniprocessor guests. They don't have IPIs.
2. Application threads might be scheduled on the sole vCPU that handles
completion interrupts purely by chance. (This is one reason why benchmark
results can vary noticably between runs.)
3. Users may bind the application to the vCPU that handles completion
interrupts.
Set the number of queues to the number of vCPUs by default. Older machine
types continue to default to 1 queue for live migration compatibility.
This patch improves IOPS by 1-4% on an Intel Optane SSD with 4 vCPUs, -drive
aio=native, and fio bs=4k direct=1 rw=randread.
Stefan Hajnoczi (4):
virtio-scsi: introduce a constant for fixed virtqueues
virtio-scsi: default num_queues to -smp N
virtio-blk: default num_queues to -smp N
vhost-user-blk: default num_queues to -smp N
hw/block/vhost-user-blk.c | 6 +++++-
hw/block/virtio-blk.c | 6 +++++-
hw/core/machine.c | 5 +++++
hw/scsi/vhost-scsi.c | 3 ++-
hw/scsi/vhost-user-scsi.c | 5 +++--
hw/scsi/virtio-scsi.c | 13 +++++++++----
hw/virtio/vhost-scsi-pci.c | 10 ++++++++--
hw/virtio/vhost-user-blk-pci.c | 6 ++++++
hw/virtio/vhost-user-scsi-pci.c | 10 ++++++++--
hw/virtio/virtio-blk-pci.c | 9 ++++++++-
hw/virtio/virtio-scsi-pci.c | 10 ++++++++--
include/hw/virtio/vhost-user-blk.h | 2 ++
include/hw/virtio/virtio-blk.h | 2 ++
include/hw/virtio/virtio-scsi.h | 5 +++++
14 files changed, 76 insertions(+), 16 deletions(-)
--
2.24.1
- [PATCH v2 0/4] virtio-pci: enable blk and scsi multi-queue by default,
Stefan Hajnoczi <=