[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel] [PATCH] xl: tsc_mode parameter in guest configuration file
Thanks Eric! Sorry I didn't mention this earlier, but I just remembered it. For some of the tsc_mode's to work properly, tsc_mode AND additional tsc information must be preserved across a save/restore/migration. Also, the no_migrate config option has an indirect impact on tsc_mode; with no_migrate specified certain guests will be able to use tsc as their primary clocksource, which can be much faster. (IOW, implementing no_migrate is not a requirement, but may be worthwhile.) (See xen-4.0.hg/docs/misc/tscmode.txt for more info on all of this.) > -----Original Message----- > From: Eric Chanudet [mailto:eric.chanudet@xxxxxxxxxx] > Sent: Monday, March 29, 2010 12:32 PM > To: Vincent Hanquez; xen-devel > Cc: Dan Magenheimer > Subject: Re: [Xen-devel] [PATCH] xl: tsc_mode parameter in guest > configuration file > > On Mon, 2010-03-29 at 11:43 -0400, Vincent Hanquez wrote: > > I don't believe we ever did that, with seems wrong indeed. Thanks for > > pointing it out. > > > > Eric, any chance you can move the tsc_mode call to build_pre (which > is > > called by pv and hvm) and refresh the patch ? > > Here is the new patch including these changes. > > Acked-by: Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxxx> > > diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h > --- a/tools/libxl/libxl.h > +++ b/tools/libxl/libxl.h > @@ -74,6 +74,7 @@ typedef struct { > int vpt_align; > int max_vcpus; > int cur_vcpus; > + int tsc_mode; > uint32_t max_memkb; > uint32_t target_memkb; > uint32_t video_memkb; > diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c > --- a/tools/libxl/libxl_dom.c > +++ b/tools/libxl/libxl_dom.c > @@ -72,6 +72,7 @@ int build_pre(struct libxl_ctx *ctx, uin > xc_domain_set_memmap_limit(ctx->xch, domid, > (info->hvm) ? info->max_memkb : > (info->max_memkb + info->u.pv.slack_memkb)); > + xc_domain_set_tsc_info(ctx->xch, domid, info->tsc_mode, 0, 0, 0); > > if (info->hvm) { > unsigned long shadow; > diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c > --- a/tools/libxl/xl.c > +++ b/tools/libxl/xl.c > @@ -235,6 +235,7 @@ static void printf_info(libxl_domain_cre > printf("hpet: %d\n", b_info->hpet); > printf("vpt_align: %d\n", b_info->vpt_align); > printf("max_vcpus: %d\n", b_info->max_vcpus); > + printf("tsc_mode: %d\n", b_info->tsc_mode); > printf("max_memkb: %d\n", b_info->max_memkb); > printf("target_memkb: %d\n", b_info->target_memkb); > printf("kernel: %s\n", b_info->kernel); > @@ -382,6 +383,9 @@ static void parse_config_file(const char > b_info->target_memkb = b_info->max_memkb; > } > > + if (!xlu_cfg_get_long(config, "tsc_mode", &l)) > + b_info->tsc_mode = l; > + > if (!xlu_cfg_get_long (config, "shadow_memory", &l)) > b_info->shadow_memkb = l * 1024; > > > -- > Eric Chanudet > XenClient Team > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |