[PATCH] vmi: fix nohz compile

More goo from hrtimers integration.  We do compile and run properly with NO_HZ
enabled.  There was a period when we didn't because of a missing export, but
that was since fixed.

And with the clocksource code now firmly in place, we can get rid of code that
fixes up the wallclock, since this is done in the common infrastructure.  This
actually fixes a timer bug as well, that was caused by do_settimeofday no
longer being callable with interrupts disabled due to the use of
on_each_cpu().

Signed-off-by: Zachary Amsden <zach@vmware.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Zachary Amsden 2007-03-05 00:30:41 -08:00 committed by Linus Torvalds
parent e30fab3ad3
commit a9eddc9528
3 changed files with 2 additions and 16 deletions

View File

@ -220,7 +220,7 @@ config PARAVIRT
config VMI
bool "VMI Paravirt-ops support"
depends on PARAVIRT && !NO_HZ
depends on PARAVIRT
default y
help
VMI provides a paravirtualized interface to multiple hypervisors

View File

@ -934,6 +934,7 @@ void __init vmi_init(void)
#ifdef CONFIG_X86_IO_APIC
no_timer_check = 1;
#endif
no_sync_cmos_clock = 1;
local_irq_restore(flags & X86_EFLAGS_IF);
}

View File

@ -153,13 +153,6 @@ static void vmi_get_wallclock_ts(struct timespec *ts)
ts->tv_sec = wallclock;
}
static void update_xtime_from_wallclock(void)
{
struct timespec ts;
vmi_get_wallclock_ts(&ts);
do_settimeofday(&ts);
}
unsigned long vmi_get_wallclock(void)
{
struct timespec ts;
@ -197,18 +190,10 @@ void __init vmi_time_init(void)
set_intr_gate(LOCAL_TIMER_VECTOR, apic_vmi_timer_interrupt);
#endif
no_sync_cmos_clock = 1;
vmi_get_wallclock_ts(&xtime);
set_normalized_timespec(&wall_to_monotonic,
-xtime.tv_sec, -xtime.tv_nsec);
real_cycles_accounted_system = read_real_cycles();
update_xtime_from_wallclock();
per_cpu(process_times_cycles_accounted_cpu, 0) = read_available_cycles();
cycles_per_sec = vmi_timer_ops.get_cycle_frequency();
cycles_per_jiffy = cycles_per_sec;
(void)do_div(cycles_per_jiffy, HZ);
cycles_per_alarm = cycles_per_sec;