x86: xen: Sync the wallclock when the system time is set
authorDavid Vrabel <david.vrabel@citrix.com>
Thu, 27 Jun 2013 10:35:47 +0000 (11:35 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 28 Jun 2013 21:15:06 +0000 (23:15 +0200)
commit5584880e44e49c587059801faa2a9f7d22619c48
tree46e21fede52e74d90287705a1d86ff1498d205ce
parent780427f0e113b4c77dfff4d258c05a902cdb0eb9
x86: xen: Sync the wallclock when the system time is set

Currently the Xen wallclock is only updated every 11 minutes if NTP is
synchronized to its clock source (using the sync_cmos_clock() work).
If a guest is started before NTP is synchronized it may see an
incorrect wallclock time.

Use the pvclock_gtod notifier chain to receive a notification when the
system time has changed and update the wallclock to match.

This chain is called on every timer tick and we want to avoid an extra
(expensive) hypercall on every tick.  Because dom0 has historically
never provided a very accurate wallclock and guests do not expect one,
we can do this simply: the wallclock is only updated if the clock was
set.

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: <xen-devel@lists.xen.org>
Link: http://lkml.kernel.org/r/1372329348-20841-5-git-send-email-david.vrabel@citrix.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/xen/time.c