pc: Require IRQ remapping and EIM if there could be x2APIC CPUs
It would prevent starting guest with incorrect configs where interrupts couldn't be delivered to CPUs with APIC IDs > 255. Signed-off-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Radim Krčmář <rkrcmar@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
This commit is contained in:
parent
080ac219cc
commit
60c5e1040e
14
hw/i386/pc.c
14
hw/i386/pc.c
@ -68,6 +68,7 @@
|
||||
#include "qapi-visit.h"
|
||||
#include "qom/cpu.h"
|
||||
#include "hw/nmi.h"
|
||||
#include "hw/i386/intel_iommu.h"
|
||||
|
||||
/* debug PC/ISA interrupts */
|
||||
//#define DEBUG_IRQ
|
||||
@ -1273,6 +1274,19 @@ void pc_machine_done(Notifier *notifier, void *data)
|
||||
sizeof(pcms->boot_cpus_le));
|
||||
}
|
||||
}
|
||||
|
||||
if (pcms->apic_id_limit > 255) {
|
||||
IntelIOMMUState *iommu = INTEL_IOMMU_DEVICE(x86_iommu_get_default());
|
||||
|
||||
if (!iommu || !iommu->x86_iommu.intr_supported ||
|
||||
iommu->intr_eim != ON_OFF_AUTO_ON) {
|
||||
error_report("current -smp configuration requires "
|
||||
"Extended Interrupt Mode enabled. "
|
||||
"You can add an IOMMU using: "
|
||||
"-device intel-iommu,intremap=on,eim=on");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void pc_guest_info_init(PCMachineState *pcms)
|
||||
|
Loading…
Reference in New Issue
Block a user