1
0
Fork 0
alistair23-linux/arch/x86/kvm
Steve Rutherford 7543a635aa KVM: x86: Add KVM exit for IOAPIC EOIs
Adds KVM_EXIT_IOAPIC_EOI which allows the kernel to EOI
level-triggered IOAPIC interrupts.

Uses a per VCPU exit bitmap to decide whether or not the IOAPIC needs
to be informed (which is identical to the EOI_EXIT_BITMAP field used
by modern x86 processors, but can also be used to elide kvm IOAPIC EOI
exits on older processors).

[Note: A prototype using ResampleFDs found that decoupling the EOI
from the VCPU's thread made it possible for the VCPU to not see a
recent EOI after reentering the guest. This does not match real
hardware.]

Compile tested for Intel x86.

Signed-off-by: Steve Rutherford <srutherford@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-10-01 15:06:27 +02:00
..
Kconfig KVM: x86: mark legacy PCI device assignment as deprecated 2015-06-05 17:26:39 +02:00
Makefile kvm/x86: move Hyper-V MSR's/hypercall code into hyperv.c file 2015-07-23 08:27:06 +02:00
assigned-dev.c VFS: assorted d_backing_inode() annotations 2015-04-15 15:06:59 -04:00
assigned-dev.h KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
cpuid.c KVM: VMX: fix vmwrite to invalid VMCS 2015-07-10 13:25:25 +02:00
cpuid.h KVM: x86: save/load state on SMM switch 2015-06-04 16:17:46 +02:00
emulate.c Silence compiler warning in arch/x86/kvm/emulate.c 2015-09-06 16:26:23 +02:00
hyperv.c kvm/x86: added hyper-v crash msrs into kvm hyperv context 2015-07-23 08:27:06 +02:00
hyperv.h kvm/x86: added hyper-v crash msrs into kvm hyperv context 2015-07-23 08:27:06 +02:00
i8254.c KVM: x86: Split the APIC from the rest of IRQCHIP. 2015-10-01 15:06:26 +02:00
i8254.h KVM: move iodev.h from virt/kvm/ to include/kvm 2015-03-26 21:43:12 +00:00
i8259.c KVM: x86: clean/fix memory barriers in irqchip_in_kernel 2015-07-30 16:02:56 +02:00
ioapic.c KVM: x86: store IOAPIC-handled vectors in each VCPU 2015-10-01 15:06:23 +02:00
ioapic.h KVM: x86: Split the APIC from the rest of IRQCHIP. 2015-10-01 15:06:26 +02:00
iommu.c KVM: count number of assigned devices 2015-07-10 13:25:26 +02:00
irq.c KVM: x86: introduce lapic_in_kernel 2015-10-01 15:06:25 +02:00
irq.h KVM: x86: Split the APIC from the rest of IRQCHIP. 2015-10-01 15:06:26 +02:00
irq_comm.c KVM: x86: Split the APIC from the rest of IRQCHIP. 2015-10-01 15:06:26 +02:00
kvm_cache_regs.h KVM: x86: API changes for SMM support 2015-06-04 16:01:11 +02:00
lapic.c KVM: x86: Add KVM exit for IOAPIC EOIs 2015-10-01 15:06:27 +02:00
lapic.h KVM: x86: replace vm_has_apicv hook with cpu_uses_apicv 2015-10-01 15:06:24 +02:00
mmu.c KVM: x86: introduce lapic_in_kernel 2015-10-01 15:06:25 +02:00
mmu.h KVM: VMX: drop ept misconfig check 2015-08-05 12:47:26 +02:00
mmu_audit.c Minor merge needed, due to function move. 2015-07-01 10:49:25 -07:00
mmutrace.h tracing: Rename ftrace_event.h to trace_events.h 2015-05-13 14:05:12 -04:00
mtrr.c KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON 2015-08-05 12:47:21 +02:00
paging_tmpl.h KVM: MMU: move FNAME(is_rsvd_bits_set) to mmu.c 2015-08-05 12:47:22 +02:00
pmu.c KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
pmu.h KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
pmu_amd.c KVM: x86/vPMU: Fix unnecessary signed extension for AMD PERFCTRn 2015-08-11 15:19:41 +02:00
pmu_intel.c KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
svm.c KVM: x86: unify handling of interrupt window 2015-10-01 15:06:26 +02:00
trace.h KVM: x86: save/load state on SMM switch 2015-06-04 16:17:46 +02:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: x86: unify handling of interrupt window 2015-10-01 15:06:26 +02:00
x86.c KVM: x86: Add KVM exit for IOAPIC EOIs 2015-10-01 15:06:27 +02:00
x86.h kvm/x86: move Hyper-V MSR's/hypercall code into hyperv.c file 2015-07-23 08:27:06 +02:00