[PATCH] qemu: allow large VMs without IOMMU for x86
Extended Destination ID is an alternative to interrupt remapping in IOMMU enabled in QEMU by default when kernel-irqchip=split is used. Signed-off-by: Anton Gerasimov <agerasimov@nebius.com> --- src/qemu/qemu_validate.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index e946f55351..c8af25828b 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -954,10 +954,12 @@ qemuValidateDomainVCpuTopology(const virDomainDef *def, virQEMUCaps *qemuCaps) QEMU_MAX_VCPUS_WITHOUT_X2APIC); return -1; } - if (!def->iommus || (def->iommus[0]->eim != VIR_TRISTATE_SWITCH_ON && - def->iommus[0]->xtsup != VIR_TRISTATE_SWITCH_ON)) { + if ((def->features[VIR_DOMAIN_FEATURE_IOAPIC] != VIR_DOMAIN_IOAPIC_QEMU) && + (!def->iommus || + (def->iommus[0]->eim != VIR_TRISTATE_SWITCH_ON && + def->iommus[0]->xtsup != VIR_TRISTATE_SWITCH_ON))) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, - _("more than %1$d vCPUs require EIM or XTSup mode enabled on the iommu device"), + _("more than %1$d vCPUs require either IOAPIC in QEMU or an iommu device with EIM or XTSup mode enabled"), QEMU_MAX_VCPUS_WITHOUT_X2APIC); return -1; } -- 2.43.0
participants (1)
-
Anton Gerasimov