20 #include <linux/kvm_para.h>
28 #include <asm/reboot.h>
30 static int kvmclock = 1;
34 static int parse_no_kvmclock(
char *
arg)
50 static unsigned long kvm_get_wallclock(
void)
59 native_write_msr(msr_kvm_wall_clock, low, high);
68 static int kvm_set_wallclock(
unsigned long now)
73 static cycle_t kvm_clock_read(
void)
87 return kvm_clock_read();
99 static unsigned long kvm_get_tsc_khz(
void)
106 static void kvm_get_preset_lpj(
void)
111 khz = kvm_get_tsc_khz();
113 lpj = ((
u64)khz * 1000);
134 .read = kvm_clock_get_cycles,
147 ret = native_write_msr_safe(msr_kvm_system_time, low, high);
149 cpu, high, low, txt);
154 static void kvm_save_sched_clock_state(
void)
158 static void kvm_restore_sched_clock_state(
void)
163 #ifdef CONFIG_X86_LOCAL_APIC
164 static void __cpuinit kvm_setup_secondary_clock(
void)
183 static void kvm_crash_shutdown(
struct pt_regs *
regs)
185 native_write_msr(msr_kvm_system_time, 0, 0);
191 static void kvm_shutdown(
void)
193 native_write_msr(msr_kvm_system_time, 0, 0);
210 msr_kvm_system_time, msr_kvm_wall_clock);
218 #ifdef CONFIG_X86_LOCAL_APIC
220 kvm_setup_secondary_clock;
222 x86_platform.save_sched_clock_state = kvm_save_sched_clock_state;
223 x86_platform.restore_sched_clock_state = kvm_restore_sched_clock_state;
228 kvm_get_preset_lpj();