Messages in this thread | | | Date | Wed, 2 Sep 2009 09:21:44 -0300 | From | Glauber Costa <> | Subject | Re: [PATCH 1/2] keep guest wallclock in sync with host clock |
| |
On Wed, Sep 02, 2009 at 02:44:11PM +0300, Avi Kivity wrote: > On 09/01/2009 02:50 PM, Glauber Costa wrote: >> KVM clock is great to avoid drifting in guest VMs running ontop of kvm. >> However, the current mechanism will not propagate changes in wallclock value >> upwards. This effectively means that in a large pool of VMs that need accurate timing, >> all of them has to run NTP, instead of just the host doing it. >> >> Since the host updates information in the shared memory area upon msr writes, >> this patch introduces a worker that writes to that msr, and calls do_settimeofday >> at fixed intervals, with second resolution. A interval of 0 determines that we >> are not interested in this behaviour. A later patch will make this optional at >> runtime >> >> + >> +static void kvm_sync_wall_clock(struct work_struct *work) >> +{ >> + struct timespec now; >> + >> + kvm_get_wall_ts(&now); >> > > What happens if we schedule here? hummm, I guess disabling preemption would be enough to make us safe here?
> >> + >> + do_settimeofday(&now); >> + schedule_next_update(); >> +} >> + >> +static __init int init_updates(void) >> +{ >> + schedule_next_update(); >> + return 0; >> +} >> +/* >> + * It has to be run after workqueues are initialized, since we call >> + * schedule_delayed_work. Other than that, we have no specific requirements >> + */ >> +late_initcall(init_updates); >> > > Should this run on bare metal too? > > -- > error compiling committee.c: too many arguments to function >
| |