diff options
author | Zachary Amsden <zamsden@redhat.com> | 2009-09-29 17:38:34 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-12-03 02:32:12 -0500 |
commit | b820cc0ca20fdcf8014d8e57421cf29095e39392 (patch) | |
tree | 15df0ebf5d62a2842a55963c549dd4b3b5c21152 /arch/x86/kvm/x86.c | |
parent | 0c6ddcebd8303ada6faefa6f72ac18b6230320c4 (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.c | 23 |
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 | ||
3121 | static 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 | |||
3121 | int kvm_arch_init(void *opaque) | 3134 | int 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 | ||