diff options
| -rw-r--r-- | arch/i386/Kconfig | 2 | ||||
| -rw-r--r-- | arch/i386/kernel/vmi.c | 1 | ||||
| -rw-r--r-- | arch/i386/kernel/vmitime.c | 15 |
3 files changed, 2 insertions, 16 deletions
diff --git a/arch/i386/Kconfig b/arch/i386/Kconfig index 2f7672545fe9..e970887b9e69 100644 --- a/arch/i386/Kconfig +++ b/arch/i386/Kconfig | |||
| @@ -220,7 +220,7 @@ config PARAVIRT | |||
| 220 | 220 | ||
| 221 | config VMI | 221 | config VMI |
| 222 | bool "VMI Paravirt-ops support" | 222 | bool "VMI Paravirt-ops support" |
| 223 | depends on PARAVIRT && !NO_HZ | 223 | depends on PARAVIRT |
| 224 | default y | 224 | default y |
| 225 | help | 225 | help |
| 226 | VMI provides a paravirtualized interface to multiple hypervisors | 226 | VMI provides a paravirtualized interface to multiple hypervisors |
diff --git a/arch/i386/kernel/vmi.c b/arch/i386/kernel/vmi.c index a8aa57e77029..30e8253e6eef 100644 --- a/arch/i386/kernel/vmi.c +++ b/arch/i386/kernel/vmi.c | |||
| @@ -934,6 +934,7 @@ void __init vmi_init(void) | |||
| 934 | #ifdef CONFIG_X86_IO_APIC | 934 | #ifdef CONFIG_X86_IO_APIC |
| 935 | no_timer_check = 1; | 935 | no_timer_check = 1; |
| 936 | #endif | 936 | #endif |
| 937 | no_sync_cmos_clock = 1; | ||
| 937 | 938 | ||
| 938 | local_irq_restore(flags & X86_EFLAGS_IF); | 939 | local_irq_restore(flags & X86_EFLAGS_IF); |
| 939 | } | 940 | } |
diff --git a/arch/i386/kernel/vmitime.c b/arch/i386/kernel/vmitime.c index 4bb218e2eb14..d21779749838 100644 --- a/arch/i386/kernel/vmitime.c +++ b/arch/i386/kernel/vmitime.c | |||
| @@ -153,13 +153,6 @@ static void vmi_get_wallclock_ts(struct timespec *ts) | |||
| 153 | ts->tv_sec = wallclock; | 153 | ts->tv_sec = wallclock; |
| 154 | } | 154 | } |
| 155 | 155 | ||
| 156 | static void update_xtime_from_wallclock(void) | ||
| 157 | { | ||
| 158 | struct timespec ts; | ||
| 159 | vmi_get_wallclock_ts(&ts); | ||
| 160 | do_settimeofday(&ts); | ||
| 161 | } | ||
| 162 | |||
| 163 | unsigned long vmi_get_wallclock(void) | 156 | unsigned long vmi_get_wallclock(void) |
| 164 | { | 157 | { |
| 165 | struct timespec ts; | 158 | struct timespec ts; |
| @@ -197,18 +190,10 @@ void __init vmi_time_init(void) | |||
| 197 | set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); | 190 | set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt); |
| 198 | #endif | 191 | #endif |
| 199 | 192 | ||
| 200 | no_sync_cmos_clock = 1; | ||
| 201 | |||
| 202 | vmi_get_wallclock_ts(&xtime); | ||
| 203 | set_normalized_timespec(&wall_to_monotonic, | ||
| 204 | -xtime.tv_sec, -xtime.tv_nsec); | ||
| 205 | |||
| 206 | real_cycles_accounted_system = read_real_cycles(); | 193 | real_cycles_accounted_system = read_real_cycles(); |
| 207 | update_xtime_from_wallclock(); | ||
| 208 | per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); | 194 | per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles(); |
| 209 | 195 | ||
| 210 | cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); | 196 | cycles_per_sec = vmi_timer_ops.get_cycle_frequency(); |
| 211 | |||
| 212 | cycles_per_jiffy = cycles_per_sec; | 197 | cycles_per_jiffy = cycles_per_sec; |
| 213 | (void)do_div(cycles_per_jiffy, HZ); | 198 | (void)do_div(cycles_per_jiffy, HZ); |
| 214 | cycles_per_alarm = cycles_per_sec; | 199 | cycles_per_alarm = cycles_per_sec; |
