qemu/hw/block
Stefan Hajnoczi 9445e1e15e virtio-blk-pci: default num_queues to -smp N
Automatically size the number of virtio-blk-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.

Performance improves from 78k to 104k IOPS on a 32 vCPU guest with 101
virtio-blk-pci devices (ioengine=libaio, iodepth=1, bs=4k, rw=randread
with NVMe storage).

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Message-Id: <20200818143348.310613-7-stefanha@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-08-27 08:29:13 -04:00
..
dataplane meson: convert hw/block 2020-08-21 06:30:32 -04:00
block.c block: make BlockConf size props 32bit and accept size suffixes 2020-06-17 14:53:40 +02:00
cdrom.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ecc.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
fdc.c error: Eliminate error_propagate() manually 2020-07-10 15:18:08 +02:00
hd-geometry.c block: Remove blk_pread_unthrottled() 2019-08-16 10:25:16 +02:00
Kconfig hw/m68k: add a dummy SWIM floppy controller 2019-10-28 19:06:51 +01:00
m25p80.c m25p80: Improve command handling for unsupported commands 2020-03-17 11:36:42 +00:00
meson.build meson: convert hw/block 2020-08-21 06:30:32 -04:00
nand.c qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
nvme.c qom: Change object_get_canonical_path_component() not to malloc 2020-07-21 16:23:43 +02:00
nvme.h hw/block/nvme: add msix_qsize parameter 2020-06-17 14:53:40 +02:00
onenand.c qdev: set properties with device_class_set_props() 2020-01-24 20:59:15 +01:00
pflash_cfi01.c pflash: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00
pflash_cfi02.c pflash: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00
swim.c block: consolidate blocksize properties consistency checks 2020-06-17 14:53:40 +02:00
tc58128.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
trace-events hw/block/nvme: rename trace events to pci_nvme 2020-06-17 14:53:39 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user-blk.c * Miscellaneous fixes and feature enablement (many) 2020-06-12 23:06:22 +01:00
virtio-blk.c virtio-blk-pci: default num_queues to -smp N 2020-08-27 08:29:13 -04:00
xen_blkif.h xen: Import other xen/io/*.h 2019-06-24 10:42:30 +01:00
xen-block.c xen: Use ERRP_GUARD() 2020-07-10 15:18:09 +02:00