[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] libxl: support for "rtc_timeoffset" and "localtime"
On Mon, 2012-03-19 at 15:31 +0000, Lin Ming wrote: > From 0614ad85fc5956d95d988b88689cc4967b4d8af8 Mon Sep 17 00:00:00 2001 > From: Lin Ming <mlin@xxxxxxxxxxxxx> > Date: Sun, 18 Mar 2012 13:14:32 +0800 > Subject: [PATCH] libxl: support for "rtc_timeoffset" and "localtime" > > Implement "rtc_timeoffset" and "localtime" options compatible as xm. > > rtc_timeoffset is the offset between host time and guest time. > localtime means to specify whether the emulted RTC appears as UTC or is > offset by the host. > > Signed-off-by: Lin Ming <mlin@xxxxxxxxxxxxx> Looks good to me, thanks! Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> Although when you repost please can you fix the following: > [...] > @@ -767,6 +767,14 @@ Set mode for Virtual Timers XXX ??? should be an enum of > particular > values. See C<HVM_PARAM_TIMER_MODE> in > F<xen/include/public/hvm/params.h>. The is the end of a sub section entitled "Unclassified HVM Specific Options". I think these new options belong in the "Guest Virtual Time Controls" subsection or perhaps "Miscellaneous Emulated Hardware". Ian. > > +=item B<localtime=BOOLEAN> > + > +Set the real time clock to local time or to UTC. 0 by default, i.e. set to > UTC. > + > +=item B<rtc_timeoffset=SECONDS> > + > +Set the real time clock offset in seconds. 0 by default. > + > =back > > =head2 Device-Model Options > diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c > index 8417661..d39ecbe 100644 > --- a/tools/libxl/libxl_create.c > +++ b/tools/libxl/libxl_create.c > @@ -124,6 +124,17 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc, > if (b_info->target_memkb == LIBXL_MEMKB_DEFAULT) > b_info->target_memkb = b_info->max_memkb; > > + libxl_defbool_setdefault(&b_info->localtime, false); > + if (libxl_defbool_val(b_info->localtime)) { > + time_t t; > + struct tm *tm; > + > + t = time(NULL); > + tm = localtime(&t); > + > + b_info->rtc_timeoffset += tm->tm_gmtoff; > + } > + > libxl_defbool_setdefault(&b_info->disable_migrate, false); > > switch (b_info->type) { > diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c > index 9b33267..0bdd654 100644 > --- a/tools/libxl/libxl_dom.c > +++ b/tools/libxl/libxl_dom.c > @@ -91,6 +91,9 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid, > if (libxl_defbool_val(info->disable_migrate)) > xc_domain_disable_migrate(ctx->xch, domid); > > + if (info->rtc_timeoffset) > + xc_domain_set_time_offset(ctx->xch, domid, info->rtc_timeoffset); > + > if (info->type == LIBXL_DOMAIN_TYPE_HVM) { > unsigned long shadow; > shadow = (info->shadow_memkb + 1023) / 1024; > diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl > index 413a1a6..09089b2 100644 > --- a/tools/libxl/libxl_types.idl > +++ b/tools/libxl/libxl_types.idl > @@ -238,6 +238,8 @@ libxl_domain_build_info = Struct("domain_build_info",[ > ("target_memkb", MemKB), > ("video_memkb", MemKB), > ("shadow_memkb", MemKB), > + ("rtc_timeoffset", uint32), > + ("localtime", libxl_defbool), > ("disable_migrate", libxl_defbool), > ("cpuid", libxl_cpuid_policy_list), > > diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c > index 1d59b89..0736357 100644 > --- a/tools/libxl/xl_cmdimpl.c > +++ b/tools/libxl/xl_cmdimpl.c > @@ -697,6 +697,11 @@ static void parse_config_data(const char > *configfile_filename_report, > } > } > > + if (!xlu_cfg_get_long(config, "rtc_timeoffset", &l, 0)) > + b_info->rtc_timeoffset = l; > + > + xlu_cfg_get_defbool(config, "localtime", &b_info->localtime, 0); > + > if (!xlu_cfg_get_long (config, "videoram", &l, 0)) > b_info->video_memkb = l * 1024; > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |