lkml.org 
[lkml]   [2013]   [May]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 3/3] x86/xen: sync the CMOS RTC as well as the Xen wallclock
On 05/13/2013 10:56 AM, David Vrabel wrote:
> From: David Vrabel <david.vrabel@citrix.com>
>
> If NTP is used in dom0 and it is synchronized to its clock source,
> then the kernel will periodically synchronize the Xen wallclock with
> the system time. Updates to the Xen wallclock do not persist across
> reboots, so also synchronize the CMOS RTC (as on bare metal).
>
> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
> ---
> arch/x86/xen/time.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
> index a1947ac..4656165 100644
> --- a/arch/x86/xen/time.c
> +++ b/arch/x86/xen/time.c
> @@ -14,6 +14,7 @@
> #include <linux/kernel_stat.h>
> #include <linux/math64.h>
> #include <linux/gfp.h>
> +#include <linux/mc146818rtc.h>
>
> #include <asm/pvclock.h>
> #include <asm/xen/hypervisor.h>
> @@ -199,17 +200,25 @@ static void xen_get_wallclock(struct timespec *now)
> static int xen_set_wallclock(const struct timespec *now)
> {
> struct xen_platform_op op;
> + int ret;
>
> /* do nothing for domU */
> if (!xen_initial_domain())
> return -1;
>
> + /* Set the Xen wallclock. */
> op.cmd = XENPF_settime;
> op.u.settime.secs = now->tv_sec;
> op.u.settime.nsecs = now->tv_nsec;
> op.u.settime.system_time = xen_clocksource_read();
>
> - return HYPERVISOR_dom0_op(&op);
> + ret = HYPERVISOR_dom0_op(&op);
> + if (ret)
> + return ret;
> +
> + /* Set the hardware RTC. */
> + return mach_set_rtc_mmss(now);

Sorry, just noticed one more thing while applying this. Do all Xen
systems run on hardware that has the conventional CMOS clock?

What happens if the bare-metal needs to use efi_set_rtc() or
vrtc_set_mmss() ?

thanks
-john




\
 
 \ /
  Last update: 2013-05-14 20:21    [W:0.131 / U:0.060 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site