On Thu, Feb 13, 2025 at 13:00:31 -0500, Stefan Hajnoczi wrote:
> Implement --device virtio-scsi-pci,iothread-vq-mapping= support so that
> virtqueues can be assigned to different IOThreads. This improves SMP guest
> scalability where I/O-intensive applications can become bottlenecked on a
> single IOThread.
Hi I was playing around with this along with the patches and I can see
that multiple iothreads do get loaded when I configure the mapping. It
was a bit tricky to spot it though among the 200-odd 'worker' threads
qemu spawned :D (but spawns also without this feature being used).
I didn't do any benchmarks ...
> The following benchmark results show the effect of iothread-vq-mapping. fio
> randread 4k iodepth=64 results from a 4 vCPU guest with an Intel P4800X SSD:
> iothreads IOPS
> ------------------------------
> 1 189576
> 2 312698
> 4 346744
... so I'll trust you here, but at least configuration wise this seems
to work.
As discussed on the libvirt patchset it might be a good idea to
docuement that the ctrl and event queues need to be mapped as well if
you'll be dealing with docs.
Tested-by: Peter Krempa <pkrempa@redhat.com>