diff options
author | Dieter Bloms <dieter@bloms.de> | 2012-04-25 11:38:26 +0100 |
---|---|---|
committer | Dieter Bloms <dieter@bloms.de> | 2012-04-25 11:38:26 +0100 |
commit | d9abcb8495b2d481611f8d47b45680e5d9984a33 (patch) | |
tree | 1a9735d5773e2a492ce3ec6d098e6aab21258e61 /tools/libxl/libxl_dom.c | |
parent | 8396671c939c3e42e8e96dda19800f8dcad20b65 (diff) | |
download | xen-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.c | 36 |
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); |