[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.