aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-04-06 06:56:20 +0100
committerKeir Fraser <keir.fraser@citrix.com>2010-04-06 06:56:20 +0100
commitb97d94b4efc12d46c58b98a5f60b0f29c3027021 (patch)
treeae6e21a53cff1f0cfc7871400bb1b62b5be7e29b
parent56a5e4b778df98d981f3e69f09779c04cb15d377 (diff)
downloadxen-b97d94b4efc12d46c58b98a5f60b0f29c3027021.tar.gz
xen-b97d94b4efc12d46c58b98a5f60b0f29c3027021.tar.bz2
xen-b97d94b4efc12d46c58b98a5f60b0f29c3027021.zip
xl: tsc_mode parameter in guest configuration file
Signed-off-by: Eric Chanudet <eric.chanudet@citrix.com> Acked-by: Vincent Hanquez <vincent.hanquez@eu.citrix.com> Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-rw-r--r--tools/libxl/libxl.h1
-rw-r--r--tools/libxl/libxl_dom.c1
-rw-r--r--tools/libxl/xl.c4
3 files changed, 6 insertions, 0 deletions
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
index 987722547d..959d9f5b20 100644
--- 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
index 7196aa869e..c2137929dd 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -72,6 +72,7 @@ int build_pre(struct libxl_ctx *ctx, uint32_t domid,
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
index 178bea5b92..d99e6376e6 100644
--- a/tools/libxl/xl.c
+++ b/tools/libxl/xl.c
@@ -235,6 +235,7 @@ static void printf_info(libxl_domain_create_info *c_info,
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 *filename,
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;