
On Tue, Aug 19, 2025 at 18:22:31 +0200, Andrea Bolognani via Devel wrote:
Currently we fall back to the x86-derived default of piix3-uhci, which is a USB1 controller that's not virtualization-friendly and overall a terrible choice for a modern architecture. The fact that we didn't choose a better default when RISC-V support was introduced was an oversight which is now addressed.
Signed-off-by: Andrea Bolognani <abologna@redhat.com> --- src/qemu/qemu_domain.c | 3 ++- ...ault-models.riscv64-latest.abi-update.args | 15 +++++------ ...fault-models.riscv64-latest.abi-update.xml | 26 ++++++++----------- ...64-virt-default-models.riscv64-latest.args | 15 +++++------ ...v64-virt-default-models.riscv64-latest.xml | 26 ++++++++----------- ...r-default-virt-riscv64.riscv64-latest.args | 5 ++-- ...er-default-virt-riscv64.riscv64-latest.xml | 12 +++------ tests/qemuxmlconftest.c | 2 +- 8 files changed, 45 insertions(+), 59 deletions(-)
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 3886b59026..d5ddc4ef43 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4321,7 +4321,8 @@ qemuDomainDefaultUSBControllerModel(const virDomainDef *def, { bool abiUpdate = !!(parseFlags & VIR_DOMAIN_DEF_PARSE_ABI_UPDATE);
- if (ARCH_IS_LOONGARCH(def->os.arch)) { + if (ARCH_IS_LOONGARCH(def->os.arch) || + qemuDomainIsRISCVVirt(def)) { /* Use qemu-xhci (USB3) for modern architectures */ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI)) return VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI;
As noted before this removes any fallback to the old controller; is that what you intended?