The test_ioapic_physical_destination_mode uses destination id 1, so it cannot be run with only one processor. Fixing that however shows that the self-reconfiguration test is broken with split irqchip. This should be fixed in QEMU. Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx> --- x86/ioapic.c | 3 ++- x86/unittests.cfg | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/x86/ioapic.c b/x86/ioapic.c index 3106531..ad0b47d 100644 --- a/x86/ioapic.c +++ b/x86/ioapic.c @@ -504,11 +504,12 @@ int main(void) test_ioapic_level_tmr(true); test_ioapic_edge_tmr(true); - test_ioapic_physical_destination_mode(); if (cpu_count() > 3) test_ioapic_logical_destination_mode(); if (cpu_count() > 1) { + test_ioapic_physical_destination_mode(); + test_ioapic_edge_tmr_smp(false); test_ioapic_level_tmr_smp(false); test_ioapic_level_tmr_smp(true); diff --git a/x86/unittests.cfg b/x86/unittests.cfg index d658bc8..a4df06b 100644 --- a/x86/unittests.cfg +++ b/x86/unittests.cfg @@ -33,7 +33,8 @@ arch = x86_64 [ioapic-split] file = ioapic.flat -extra_params = -cpu qemu64 -machine kernel_irqchip=split +smp = 4 +extra_params = -cpu qemu64,+x2apic -machine kernel_irqchip=split arch = x86_64 [apic] -- 2.24.1