linux/arch/x86/kvm
Paolo Bonzini fc57ac2c9c KVM: lapic: sync highest ISR to hardware apic on EOI
When Hyper-V enlightenments are in effect, Windows prefers to issue an
Hyper-V MSR write to issue an EOI rather than an x2apic MSR write.
The Hyper-V MSR write is not handled by the processor, and besides
being slower, this also causes bugs with APIC virtualization.  The
reason is that on EOI the processor will modify the highest in-service
interrupt (SVI) field of the VMCS, as explained in section 29.1.4 of
the SDM; every other step in EOI virtualization is already done by
apic_send_eoi or on VM entry, but this one is missing.

We need to do the same, and be careful not to muck with the isr_count
and highest_isr_cache fields that are unused when virtual interrupt
delivery is enabled.

Cc: stable@vger.kernel.org
Reviewed-by: Yang Zhang <yang.z.zhang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2014-05-27 10:21:09 +02:00
..
cpuid.c kvm: x86: emulate monitor and mwait instructions as nop 2014-05-08 15:40:49 +02:00
cpuid.h KVM: x86: Mark bit 7 in long-mode PDPTE according to 1GB pages support 2014-05-07 17:25:22 +02:00
emulate.c KVM: x86: check CS.DPL against RPL during task switch 2014-05-22 17:47:17 +02:00
i8254.c KVM: x86: limit PIT timer frequency 2014-01-15 12:43:54 +01:00
i8254.h KVM: fold kvm_pit_timer into kvm_kpit_state 2012-08-01 00:21:07 -03:00
i8259.c KVM: inject ExtINT interrupt before APIC interrupts 2012-12-13 23:05:21 -02:00
irq.c KVM: nVMX: Ack and write vector info to intr_info if L1 asks us to 2014-04-22 18:41:33 -03:00
irq.h KVM: switch to symbolic name for irq_states size 2012-07-20 16:12:16 -03:00
Kconfig kvm: make KVM_MMU_AUDIT help text more readable 2014-01-20 12:59:26 +01:00
kvm_cache_regs.h KVM: MMU: Do not unconditionally read PDPTE from guest memory 2011-09-25 19:18:01 +03:00
lapic.c KVM: lapic: sync highest ISR to hardware apic on EOI 2014-05-27 10:21:09 +02:00
lapic.h KVM: x86: Validate guest writes to MSR_IA32_APICBASE 2014-01-27 14:39:44 +01:00
Makefile kvm: Add VFIO device 2013-10-30 19:02:03 +01:00
mmu_audit.c kvm: mmu: delay mmu audit activation 2013-11-20 11:12:56 +02:00
mmu.c KVM: x86: Mark bit 7 in long-mode PDPTE according to 1GB pages support 2014-05-07 17:25:22 +02:00
mmu.h KVM: MMU: flush tlb out of mmu lock when write-protect the sptes 2014-04-23 17:49:52 -03:00
mmutrace.h KVM: MMU: add tracepoint for check_mmio_spte 2013-06-27 14:20:37 +03:00
paging_tmpl.h Revert "KVM: Simplify kvm->tlbs_dirty handling" 2014-04-23 17:49:48 -03:00
pmu.c KVM: x86: Fix wrong/stuck PMU when guest does not use PMI 2014-04-23 17:46:52 -03:00
svm.c KVM: x86: get CPL from SS.DPL 2014-05-22 17:47:17 +02:00
trace.h KVM: x86: improve the usability of the 'kvm_pio' tracepoint 2014-05-05 22:42:05 +02:00
tss.h
vmx.c KVM: vmx: DR7 masking on task switch emulation is wrong 2014-05-22 17:47:18 +02:00
x86.c KVM: x86: drop set_rflags callback 2014-05-22 17:47:16 +02:00
x86.h KVM: x86: introduce kvm_supported_xcr0() 2014-03-17 12:21:38 +01:00