aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl/libxl_dom.c
diff options
context:
space:
mode:
authorDieter Bloms <dieter@bloms.de>2012-04-25 11:38:26 +0100
committerDieter Bloms <dieter@bloms.de>2012-04-25 11:38:26 +0100
commitd9abcb8495b2d481611f8d47b45680e5d9984a33 (patch)
tree1a9735d5773e2a492ce3ec6d098e6aab21258e61 /tools/libxl/libxl_dom.c
parent8396671c939c3e42e8e96dda19800f8dcad20b65 (diff)
downloadxen-d9abcb8495b2d481611f8d47b45680e5d9984a33.tar.gz
xen-d9abcb8495b2d481611f8d47b45680e5d9984a33.tar.bz2
xen-d9abcb8495b2d481611f8d47b45680e5d9984a33.zip
libxl: set domain scheduling parameters while creating the domU
the domain specific scheduling parameters like cpu_weight, cap, slice, ... will be set during creating the domain, so this parameters can be defined in the domain config file [ Improved the documentation wording slightly. -iwj ] Signed-off-by: Dieter Bloms <dieter@bloms.de> Acked-by: Ian Campbell <Ian.Campbell@citrix.com> Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
Diffstat (limited to 'tools/libxl/libxl_dom.c')
-rw-r--r--tools/libxl/libxl_dom.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
index 93136f19bb..c246211823 100644
--- a/tools/libxl/libxl_dom.c
+++ b/tools/libxl/libxl_dom.c
@@ -42,6 +42,40 @@ libxl_domain_type libxl__domain_type(libxl__gc *gc, uint32_t domid)
return LIBXL_DOMAIN_TYPE_PV;
}
+int libxl__sched_set_params(libxl__gc *gc, uint32_t domid, libxl_sched_params *scparams)
+{
+ libxl_ctx *ctx = libxl__gc_owner(gc);
+ libxl_scheduler sched;
+ libxl_sched_sedf_domain sedf_info;
+ libxl_sched_credit_domain credit_info;
+ libxl_sched_credit2_domain credit2_info;
+ int ret;
+
+ sched = libxl_get_scheduler (ctx);
+ switch (sched) {
+ case LIBXL_SCHEDULER_SEDF:
+ sedf_info.period = scparams->period;
+ sedf_info.slice = scparams->slice;
+ sedf_info.latency = scparams->latency;
+ sedf_info.extratime = scparams->extratime;
+ sedf_info.weight = scparams->weight;
+ ret=libxl_sched_sedf_domain_set(ctx, domid, &sedf_info);
+ break;
+ case LIBXL_SCHEDULER_CREDIT:
+ credit_info.weight = scparams->weight;
+ credit_info.cap = scparams->cap;
+ ret=libxl_sched_credit_domain_set(ctx, domid, &credit_info);
+ break;
+ case LIBXL_SCHEDULER_CREDIT2:
+ credit2_info.weight = scparams->weight;
+ ret=libxl_sched_credit2_domain_set(ctx, domid, &credit2_info);
+ break;
+ default:
+ ret=-1;
+ }
+ return ret;
+}
+
int libxl__domain_shutdown_reason(libxl__gc *gc, uint32_t domid)
{
libxl_ctx *ctx = libxl__gc_owner(gc);
@@ -139,6 +173,8 @@ int libxl__build_post(libxl__gc *gc, uint32_t domid,
char **ents, **hvm_ents;
int i;
+ libxl__sched_set_params (gc, domid, &(info->sched_params));
+
libxl_cpuid_apply_policy(ctx, domid);
if (info->cpuid != NULL)
libxl_cpuid_set(ctx, domid, info->cpuid);