Bug 2157984

Summary: [libvirt] RFE: Per-virtqueue IOThread assignment for virtio-blk and virtio-scsi
Product: Red Hat Enterprise Linux 9 Reporter: Stefan Hajnoczi <stefanha>
Component: libvirtAssignee: Peter Krempa <pkrempa>
libvirt sub component: Storage QA Contact: Han Han <hhan>
Status: ASSIGNED --- Docs Contact:
Severity: medium    
Priority: medium CC: aliang, coli, eesposit, jsuchane, kwolf, lmen, pkrempa, qinwang, timao, vgoyal, virt-maint
Version: 9.3Keywords: FutureFeature, Triaged
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Story
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stefan Hajnoczi 2023-01-03 20:16:00 UTC
Work is underway to add per-virtqueue IOThread mapping to QEMU's virtio-blk and virtio-scsi devices.

Currently each device instance can be associated with just one IOThread where all virtqueues are processed. This is known to be a bottleneck and prevents true multi-queue operation because all I/O requests are funneled through a single IOThread on the host.

The new multi-queue support in QEMU will allow individual virtqueues to be mapped to an IOThread. It is likely that most users will wish to spread virtqueues round-robin across a set of IOThreads.

New domain XML syntax is necessary to expose this feature once it becomes available in QEMU.

I am filing this BZ now so there is time to discuss the feature and so that libvirt support can be developed in parallel to QEMU.

Comment 2 Vivek Goyal 2023-01-03 21:10:22 UTC
I guess one question I have is how the qemu and libvirt syntax going to look like to configure this feature.

Comment 3 Stefan Hajnoczi 2023-01-18 19:54:19 UTC
I have posted a QEMU RFC patch series:
https://lore.kernel.org/qemu-devel/20230118194732.1258208-1-stefanha@redhat.com/T/#t

Please see this patch series for proposed libvirt domain XML and the QEMU command-line syntax.

Comment 4 Peter Krempa 2023-03-06 13:49:37 UTC
RFC patches for libvirt which build upon the proposed qemu syntax are part of the following series addressing multiple iothread features:

https://listman.redhat.com/archives/libvir-list/2023-March/238250.html