aboutsummaryrefslogtreecommitdiff
path: root/hw/intc
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2021-03-01 12:14:14 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2021-03-06 11:41:54 +0100
commit2c933ac6a883606b85f8cf271bfb40379d077e97 (patch)
treec5db6ab7750d90dae226389b177e5fff440bd09c /hw/intc
parentc6986f16a7022ccfb73d91bc7676c8e1d15e5342 (diff)
downloadqemu-2c933ac6a883606b85f8cf271bfb40379d077e97.zip
qemu-2c933ac6a883606b85f8cf271bfb40379d077e97.tar.gz
qemu-2c933ac6a883606b85f8cf271bfb40379d077e97.tar.bz2
KVM: x86: deprecate -M kernel-irqchip=off except for -M isapc
The userspace local APIC is basically untested and does not support many features such as TSC deadline timer, x2APIC or PV spinlocks. On the other hand, the PIT and IOAPIC are okay as they are not tied to the processor and are tested with -M kernel-irqchip=split. Therefore, deprecate the local APIC and, with it, limit -M kernel-irqchip=off to the ISA PC machine type, which does not have a local APIC at all. Reviewed-by: Maxim Levitsky <mlevitsk@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'hw/intc')
-rw-r--r--hw/intc/apic.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 3ada22f..f4f50f9 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -25,6 +25,7 @@
#include "hw/intc/i8259.h"
#include "hw/pci/msi.h"
#include "qemu/host-utils.h"
+#include "sysemu/kvm.h"
#include "trace.h"
#include "hw/i386/apic-msidef.h"
#include "qapi/error.h"
@@ -875,6 +876,11 @@ static void apic_realize(DeviceState *dev, Error **errp)
return;
}
+ if (kvm_enabled()) {
+ warn_report("Userspace local APIC is deprecated for KVM.");
+ warn_report("Do not use kernel-irqchip except for the -M isapc machine type.");
+ }
+
memory_region_init_io(&s->io_memory, OBJECT(s), &apic_io_ops, s, "apic-msi",
APIC_SPACE_SIZE);