kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP
This patch adds support for split IRQ chip mode. When KVM_CAP_SPLIT_IRQCHIP is enabled: 1.) The PIC, PIT, and IOAPIC are implemented in userspace while the LAPIC is implemented by KVM. 2.) The software IOAPIC delivers interrupts to the KVM LAPIC via kvm_set_irq. Interrupt delivery is configured via the MSI routing table, for which routes are reserved in target-i386/kvm.c then configured in hw/intc/ioapic.c 3.) KVM delivers IOAPIC EOIs via a new exit KVM_EXIT_IOAPIC_EOI, which is handled in target-i386/kvm.c and relayed to the software IOAPIC via ioapic_eoi_broadcast. Signed-off-by:Matt Gingell <gingell@google.com> Signed-off-by:
Paolo Bonzini <pbonzini@redhat.com>
Showing
- hw/i386/pc.c 3 additions, 2 deletionshw/i386/pc.c
- hw/i386/pc_piix.c 2 additions, 2 deletionshw/i386/pc_piix.c
- hw/intc/ioapic.c 66 additions, 2 deletionshw/intc/ioapic.c
- include/hw/i386/pc.h 13 additions, 0 deletionsinclude/hw/i386/pc.h
- include/sysemu/kvm.h 5 additions, 1 deletioninclude/sysemu/kvm.h
- kvm-all.c 8 additions, 2 deletionskvm-all.c
- stubs/kvm.c 1 addition, 1 deletionstubs/kvm.c
- target-arm/kvm.c 7 additions, 1 deletiontarget-arm/kvm.c
- target-i386/cpu.c 1 addition, 1 deletiontarget-i386/cpu.c
- target-i386/kvm.c 40 additions, 2 deletionstarget-i386/kvm.c
- target-i386/kvm_i386.h 2 additions, 0 deletionstarget-i386/kvm_i386.h
Loading
Please register or sign in to comment