On Fri, Feb 14, 2025 at 05:29:34PM +0100, Peter Krempa wrote: > The first part of the series refactors the existing code for reuse and > then uses the new helpers to implement the feature. > > Note that this series is in RFC state as the qemu patches are still > being discussed. Thus also the capability bump is not final. > > Also note that we should discuss the libvirt interface perhaps as it > turns out that 'virtio-scsi' has two internal queues that need to be > mapped as well. > > For now I've solved this administratively by instructing users to also > add mapping for queue '0' and '1' which are the special ones in case of > virtio-scsi.
Thanks for tackling this upcoming QEMU feature! I thought about the pros/cons of exposing all virtqueues in iothread-vq-mapping= whereas just the command virtqueues are exposed by num_queues=. Although it's confusing and inconvenient that the implicit ctrl and event virtqueues need to be covered by iothread-vq-mapping= but are not counted in num_queues=, I'd rather not introduce magic to hide this detail. If users do need to control these virtqueues explicitly then the magic will get in the way. Does anyone have a different opinion? Stefan > > qemu-patches: > https://mail.gnu.org/archive/html/qemu-devel/2025-02/msg02810.html > > > Peter Krempa (13): > conf: Rename 'virDomainDiskIothreadDef' to > 'virDomainIothreadMappingDef' > conf: domain: Extract code for parsing and formatting iotrhead mapping > definition > hypervisor: domain: Extract code for checking iothread usage > qemu: command: Rename 'qemuBuildDiskDeviceIothreadMappingProps' to > 'qemuBuildIothreadMappingProps' > qemu: validate: Extract iothread mapping validation code > qemuValidateCheckSCSIControllerIOThreads: Return '0' and '-1' instead > of bools > conf: schemas: Rename 'diskDriverIothreads' to 'iothreadMapping' > conf: Validate that iohtreads are used only with 'virtio-scsi' > controllers > qemucapabilitiestest: Update 'caps_10.0.0_x86_64' to XXXXXX > qemu: capabilities: Introduce QEMU_CAPS_VIRTIO_SCSI_IOTHREAD_MAPPING > conf: Add support for iothread to queue mapping config for > 'virtio-scsi' > qemu: Implement support for iothread <-> virtqueue mapping for > 'virtio-scsi' controllers > qemuxmlconftest: Add 'iothreads-virtio-scsi-mapping' case > > docs/formatdomain.rst | 33 +++ > src/conf/domain_conf.c | 157 +++++++----- > src/conf/domain_conf.h | 11 +- > src/conf/domain_validate.c | 19 ++ > src/conf/schemas/domaincommon.rng | 7 +- > src/hypervisor/domain_driver.c | 34 +-- > src/qemu/qemu_capabilities.c | 2 + > src/qemu/qemu_capabilities.h | 1 + > src/qemu/qemu_command.c | 12 +- > src/qemu/qemu_domain.c | 4 +- > src/qemu/qemu_validate.c | 234 ++++++++++-------- > .../caps_10.0.0_x86_64.replies | 12 +- > .../caps_10.0.0_x86_64.xml | 3 +- > ...r-virtio-serial-iothread.x86_64-latest.err | 1 + > .../controller-virtio-serial-iothread.xml | 27 ++ > ...ads-virtio-scsi-mapping.x86_64-latest.args | 39 +++ > ...eads-virtio-scsi-mapping.x86_64-latest.xml | 54 ++++ > .../iothreads-virtio-scsi-mapping.xml | 46 ++++ > tests/qemuxmlconftest.c | 3 + > 19 files changed, 506 insertions(+), 193 deletions(-) > create mode 100644 > tests/qemuxmlconfdata/controller-virtio-serial-iothread.x86_64-latest.err > create mode 100644 > tests/qemuxmlconfdata/controller-virtio-serial-iothread.xml > create mode 100644 > tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.x86_64-latest.args > create mode 100644 > tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.x86_64-latest.xml > create mode 100644 tests/qemuxmlconfdata/iothreads-virtio-scsi-mapping.xml > > -- > 2.48.1 >
signature.asc
Description: PGP signature