OpenCloudOS-Kernel/arch/x86/kvm
Avi Kivity 399ec807dd KVM: Userspace controlled irq routing
Currently KVM has a static routing from GSI numbers to interrupts (namely,
0-15 are mapped 1:1 to both PIC and IOAPIC, and 16:23 are mapped 1:1 to
the IOAPIC).  This is insufficient for several reasons:

- HPET requires non 1:1 mapping for the timer interrupt
- MSIs need a new method to assign interrupt numbers and dispatch them
- ACPI APIC mode needs to be able to reassign the PCI LINK interrupts to the
  ioapics

This patch implements an interrupt routing table (as a linked list, but this
can be easily changed) and a userspace interface to replace the table.  The
routing table is initialized according to the current hardwired mapping.

Signed-off-by: Avi Kivity <avi@redhat.com>
2009-03-24 11:03:06 +02:00
..
Kconfig KVM: Add CONFIG_HAVE_KVM_IRQCHIP 2009-03-24 11:03:02 +02:00
Makefile KVM: change KVM to use IOMMU API 2009-01-03 14:11:07 +01:00
i8254.c KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked 2009-03-24 11:03:03 +02:00
i8254.h KVM: Reset PIT irq injection logic when the PIT IRQ is unmasked 2009-03-24 11:03:03 +02:00
i8259.c KVM: Add locking to virtual i8259 interrupt controller 2008-12-31 16:55:48 +02:00
irq.c KVM: x86: fix LAPIC pending count calculation 2009-02-15 02:47:38 +02:00
irq.h KVM: x86: fix LAPIC pending count calculation 2009-02-15 02:47:38 +02:00
kvm_cache_regs.h KVM: x86: accessors for guest registers 2008-10-15 10:13:57 +02:00
kvm_svm.h KVM: x86: Virtualize debug registers 2009-03-24 11:02:49 +02:00
lapic.c KVM: x86: fix LAPIC pending count calculation 2009-02-15 02:47:38 +02:00
lapic.h KVM: x86: fix LAPIC pending count calculation 2009-02-15 02:47:38 +02:00
mmu.c KVM: MMU: Rename "metaphysical" attribute to "direct" 2009-03-24 11:03:04 +02:00
mmu.h KVM: MMU: Fix false flooding when a pte points to page table 2008-07-20 12:40:50 +03:00
paging_tmpl.h KVM: MMU: Rename "metaphysical" attribute to "direct" 2009-03-24 11:03:04 +02:00
svm.c KVM: SVM: Fix typo in has_svm() 2009-03-24 11:03:04 +02:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: VMX: When emulating on invalid vmx state, don't return to userspace unnecessarily 2009-03-24 11:03:00 +02:00
x86.c KVM: Userspace controlled irq routing 2009-03-24 11:03:06 +02:00
x86.h KVM: Add a pending interrupt queue 2008-10-15 10:15:13 +02:00
x86_emulate.c KVM: x86 emulator: implement 'ret far' instruction (opcode 0xcb) 2009-03-24 11:03:01 +02:00