aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
authorZachary Amsden <zamsden@redhat.com>2009-09-29 17:38:34 -0400
committerAvi Kivity <avi@redhat.com>2009-12-03 02:32:12 -0500
commitb820cc0ca20fdcf8014d8e57421cf29095e39392 (patch)
tree15df0ebf5d62a2842a55963c549dd4b3b5c21152 /arch/x86/kvm/x86.c
parent0c6ddcebd8303ada6faefa6f72ac18b6230320c4 (diff)
KVM: Separate timer intialization into an indepedent function
Signed-off-by: Zachary Amsden <zamsden@redhat.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 3d83de8bcbf4..6a31dfb8849c 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -3118,9 +3118,22 @@ static struct notifier_block kvmclock_cpufreq_notifier_block = {
3118 .notifier_call = kvmclock_cpufreq_notifier 3118 .notifier_call = kvmclock_cpufreq_notifier
3119}; 3119};
3120 3120
3121static void kvm_timer_init(void)
3122{
3123 int cpu;
3124
3125 for_each_possible_cpu(cpu)
3126 per_cpu(cpu_tsc_khz, cpu) = tsc_khz;
3127 if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
3128 tsc_khz_ref = tsc_khz;
3129 cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block,
3130 CPUFREQ_TRANSITION_NOTIFIER);
3131 }
3132}
3133
3121int kvm_arch_init(void *opaque) 3134int kvm_arch_init(void *opaque)
3122{ 3135{
3123 int r, cpu; 3136 int r;
3124 struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque; 3137 struct kvm_x86_ops *ops = (struct kvm_x86_ops *)opaque;
3125 3138
3126 if (kvm_x86_ops) { 3139 if (kvm_x86_ops) {
@@ -3152,13 +3165,7 @@ int kvm_arch_init(void *opaque)
3152 kvm_mmu_set_mask_ptes(PT_USER_MASK, PT_ACCESSED_MASK, 3165 kvm_mmu_set_mask_ptes(PT_USER_MASK, PT_ACCESSED_MASK,
3153 PT_DIRTY_MASK, PT64_NX_MASK, 0); 3166 PT_DIRTY_MASK, PT64_NX_MASK, 0);
3154 3167
3155 for_each_possible_cpu(cpu) 3168 kvm_timer_init();
3156 per_cpu(cpu_tsc_khz, cpu) = tsc_khz;
3157 if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
3158 tsc_khz_ref = tsc_khz;
3159 cpufreq_register_notifier(&kvmclock_cpufreq_notifier_block,
3160 CPUFREQ_TRANSITION_NOTIFIER);
3161 }
3162 3169
3163 return 0; 3170 return 0;
3164 3171