]> git.proxmox.com Git - mirror_qemu.git/commit - target/i386/cpu.c
kvm: x86: add support for KVM_CAP_SPLIT_IRQCHIP
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 17 Dec 2015 16:16:08 +0000 (17:16 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 17 Dec 2015 16:33:47 +0000 (17:33 +0100)
commit15eafc2e602ff8c37c6e132eb8c63fec8fc17175
treee37c79eac125c083389e8bde03b8d3e048c22b0a
parent32c18a2dbaf79c241eddabd19a3b410bab5bf0cc
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>
hw/i386/pc.c
hw/i386/pc_piix.c
hw/intc/ioapic.c
include/hw/i386/pc.h
include/sysemu/kvm.h
kvm-all.c
stubs/kvm.c
target-arm/kvm.c
target-i386/cpu.c
target-i386/kvm.c
target-i386/kvm_i386.h