linux-stable/arch/x86/kvm
Nadav Amit 671bd9934a KVM: x86: Fix wrong/stuck PMU when guest does not use PMI
If a guest enables a performance counter but does not enable PMI, the
hypervisor currently does not reprogram the performance counter once it
overflows.  As a result the host performance counter is kept with the original
sampling period which was configured according to the value of the guest's
counter when the counter was enabled.

Such behaviour can cause very bad consequences. The most distrubing one can
cause the guest not to make any progress at all, and keep exiting due to host
PMI before any guest instructions is exeucted. This situation occurs when the
performance counter holds a very high value when the guest enables the
performance counter. As a result the host's sampling period is configured to be
very short. The host then never reconfigures the sampling period and get stuck
at entry->PMI->exit loop. We encountered such a scenario in our experiments.

The solution is to reprogram the counter even if the guest does not use PMI.

Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2014-04-23 17:46:52 -03:00
..
cpuid.c KVM: expose SMAP feature to guest 2014-04-14 17:50:37 -03:00
cpuid.h KVM: Add SMAP support when setting CR4 2014-04-14 17:50:34 -03:00
emulate.c KVM: x86: Fix CR3 and LDT sel should not be saved in TSS 2014-04-21 17:33:49 -03: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 First round of KVM updates for 3.14; PPC parts will come next week. 2014-01-22 21:40:43 -08: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.c KVM: x86: Fix page-tables reserved bits 2014-04-16 18:59:23 -03:00
mmu.h KVM: Add SMAP support when setting CR4 2014-04-14 17:50:34 -03:00
mmu_audit.c kvm: mmu: delay mmu audit activation 2013-11-20 11:12:56 +02:00
mmutrace.h KVM: MMU: add tracepoint for check_mmio_spte 2013-06-27 14:20:37 +03:00
paging_tmpl.h KVM: Add SMAP support when setting CR4 2014-04-14 17:50:34 -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 Merge tag 'kvm-3.15-1' of git://git.kernel.org/pub/scm/virt/kvm/kvm 2014-04-02 14:50:10 -07:00
trace.h kvm: Add a tracepoint write_tsc_offset 2013-06-27 14:20:51 +03:00
tss.h
vmx.c KVM: nVMX: Advertise support for interrupt acknowledgement 2014-04-22 18:41:34 -03:00
x86.c KVM: support any-length wildcard ioeventfd 2014-04-17 14:01:42 -03:00
x86.h KVM: x86: introduce kvm_supported_xcr0() 2014-03-17 12:21:38 +01:00