linux/arch/x86/kvm
Zachary Amsden 0cca790753 KVM: Kill the confusing tsc_ref_khz and ref_freq variables
They are globals, not clearly protected by any ordering or locking, and
vulnerable to various startup races.

Instead, for variable TSC machines, register the cpufreq notifier and get
the TSC frequency directly from the cpufreq machinery.  Not only is it
always right, it is also perfectly accurate, as no error prone measurement
is required.

On such machines, when a new CPU online is brought online, it isn't clear what
frequency it will start with, and it may not correspond to the reference, thus
in hardware_enable we clear the cpu_tsc_khz variable to zero and make sure
it is set before running on a VCPU.

Signed-off-by: Zachary Amsden <zamsden@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
2009-12-03 09:32:12 +02:00
..
emulate.c KVM: x86 emulator: Add pusha and popa instructions 2009-12-03 09:32:09 +02:00
i8254.c KVM: Drop kvm->irq_lock lock from irq injection path 2009-12-03 09:32:08 +02:00
i8254.h KVM: PIT support for HPET legacy mode 2009-09-10 08:33:12 +03:00
i8259.c KVM: Move IO APIC to its own lock 2009-12-03 09:32:08 +02:00
irq.c KVM: Remove irq_pending bitmap 2009-06-10 11:48:57 +03:00
irq.h KVM: Move irq sharing information to irqchip level 2009-12-03 09:32:06 +02:00
Kconfig KVM: remove old KVMTRACE support code 2009-09-10 08:33:03 +03:00
kvm_cache_regs.h KVM: Cache pdptrs 2009-09-10 08:32:46 +03:00
kvm_timer.h KVM: Use pointer to vcpu instead of vcpu_id in timer code. 2009-09-10 08:32:52 +03:00
lapic.c KVM: remove duplicated #include 2009-12-03 09:32:10 +02:00
lapic.h KVM: x2apic interface to lapic 2009-09-10 08:33:08 +03:00
Makefile KVM: Move assigned device code to own file 2009-12-03 09:32:09 +02:00
mmu.c KVM: Don't pass kvm_run arguments 2009-12-03 09:32:06 +02:00
mmu.h KVM: MMU: add kvm_mmu_get_spte_hierarchy helper 2009-09-10 08:32:56 +03:00
mmutrace.h KVM: Trace shadow page lifecycle 2009-09-10 08:33:10 +03:00
paging_tmpl.h KVM: MMU: add SPTE_HOST_WRITEABLE flag to the shadow ptes 2009-10-04 17:04:50 +02:00
svm.c KVM: SVM: Remove remaining occurences of rdtscll 2009-12-03 09:32:12 +02:00
timer.c KVM: Drop useless atomic test from timer function 2009-09-10 08:32:57 +03:00
trace.h KVM: Add trace points in irqchip code 2009-09-10 08:33:11 +03:00
tss.h KVM: x86: hardware task switching support 2008-04-27 12:00:39 +03:00
vmx.c KVM: Activate Virtualization On Demand 2009-12-03 09:32:10 +02:00
x86.c KVM: Kill the confusing tsc_ref_khz and ref_freq variables 2009-12-03 09:32:12 +02:00
x86.h KVM: Add Directed EOI support to APIC emulation 2009-09-10 08:33:07 +03:00