@@ -4721,18 +4721,16 @@ int kvm_arch_cpu_hotadd(int cpu)
void kvm_arch_cpu_hotremove(int cpu)
{
+ /*
+ * Reset TSC khz to zero so it is recomputed on bringup
+ */
+ if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
+ per_cpu(cpu_tsc_khz, cpu) = 0;
kvm_x86_ops->cpu_hotremove(cpu);
}
int kvm_arch_hardware_enable(void *garbage)
{
- /*
- * Notifier callback chain may not have called cpufreq code
- * yet, thus we must reset TSC khz to zero and recompute it
- * before entering.
- */
- if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC))
- per_cpu(cpu_tsc_khz, raw_smp_processor_id()) = 0;
return kvm_x86_ops->hardware_enable(garbage);
}
For the non-hotplug case, this TSC speed should be available; instead, clear cpu_khz_tsc when bringing down a CPU so it is recomputed at the next bringup. Signed-off-by: Zachary Amsden <zamsden@redhat.com> --- arch/x86/kvm/x86.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)