* [PATCH 0 of 2 v2] Sanity checking of scheduling parameters
@ 2012-06-07 13:42 Dario Faggioli
2012-06-07 13:42 ` [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set Dario Faggioli
2012-06-07 13:42 ` [PATCH 2 of 2 v2] xl: check for meaningful combination of sedf config file parameters Dario Faggioli
0 siblings, 2 replies; 5+ messages in thread
From: Dario Faggioli @ 2012-06-07 13:42 UTC (permalink / raw)
To: xen-devel; +Cc: George Dunlap, Juergen Gross, Ian Jackson, Ian Campbell
Hi,
This small series achieves two goals:
- check the return value of libxl_domain_sched_params_set() in
libxl__build_post() and deal with the error, if that is the
case (patch #1);
- check and ensue we are passing along a meaningful set of sedf
scheduling parameters when they come directly from the config file
(patch #2)
Tested on both credit and sedf schedulers.
Changes from v1:
* patch #1: it was not there at all in v1! :-P
* patch #2: the if-s have been moved into an helper function. Also,
they only happen if the domain is actually being scheduled with
sedf (IanC, yes, I decided to do it... At the end of the day, it is
simple enough I think).
Thanks and Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set
2012-06-07 13:42 [PATCH 0 of 2 v2] Sanity checking of scheduling parameters Dario Faggioli
@ 2012-06-07 13:42 ` Dario Faggioli
2012-06-07 16:41 ` Ian Jackson
2012-06-07 13:42 ` [PATCH 2 of 2 v2] xl: check for meaningful combination of sedf config file parameters Dario Faggioli
1 sibling, 1 reply; 5+ messages in thread
From: Dario Faggioli @ 2012-06-07 13:42 UTC (permalink / raw)
To: xen-devel; +Cc: George Dunlap, Juergen Gross, Ian Jackson, Ian Campbell
So that the caller (e.g., libxl__build_post() ) knows and can deal with it.
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
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
@@ -175,7 +175,8 @@ int libxl__build_post(libxl__gc *gc, uin
char **ents, **hvm_ents;
int i;
- libxl_domain_sched_params_set(CTX, domid, &info->sched_params);
+ if (libxl_domain_sched_params_set(CTX, domid, &info->sched_params))
+ return ERROR_INVAL;
libxl_cpuid_apply_policy(ctx, domid);
if (info->cpuid != NULL)
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2 of 2 v2] xl: check for meaningful combination of sedf config file parameters
2012-06-07 13:42 [PATCH 0 of 2 v2] Sanity checking of scheduling parameters Dario Faggioli
2012-06-07 13:42 ` [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set Dario Faggioli
@ 2012-06-07 13:42 ` Dario Faggioli
1 sibling, 0 replies; 5+ messages in thread
From: Dario Faggioli @ 2012-06-07 13:42 UTC (permalink / raw)
To: xen-devel; +Cc: George Dunlap, Juergen Gross, Ian Jackson, Ian Campbell
As it happens in the implementation of `xl sched-sedf -d ...', some
consistency checking is needed for the scheduling parameters when
they come from the config file.
Signed-off-by: Dario Faggioli <dario.faggioli@citrix.com>
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -550,6 +550,31 @@ vcpp_out:
return rc;
}
+static int sched_params_valid(libxl_domain_sched_params *scp)
+{
+ int has_weight = scp->weight != LIBXL_DOMAIN_SCHED_PARAM_WEIGHT_DEFAULT;
+ int has_period = scp->period != LIBXL_DOMAIN_SCHED_PARAM_PERIOD_DEFAULT;
+ int has_slice = scp->slice != LIBXL_DOMAIN_SCHED_PARAM_SLICE_DEFAULT;
+ libxl_domain_sched_params sci;
+
+ libxl_domain_sched_params_get(ctx, domid, &sci);
+
+ /* The sedf scheduler needs some more consistency checking */
+ if (sci.sched == LIBXL_SCHEDULER_SEDF) {
+ if (has_weight && (has_period || has_slice))
+ return 0;
+
+ if (has_weight) {
+ scp->slice = 0;
+ scp->period = 0;
+ }
+ if (has_period || has_slice)
+ scp->weight = 0;
+ }
+
+ return 1;
+}
+
static void parse_config_data(const char *config_source,
const char *config_data,
int config_len,
@@ -644,6 +669,10 @@ static void parse_config_data(const char
b_info->sched_params.latency = l;
if (!xlu_cfg_get_long (config, "extratime", &l, 0))
b_info->sched_params.extratime = l;
+ if (!sched_params_valid(&b_info->sched_params)) {
+ fprintf(stderr, "Invalid scheduling parameters\n");
+ exit(1);
+ }
if (!xlu_cfg_get_long (config, "vcpus", &l, 0)) {
b_info->max_vcpus = l;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set
2012-06-07 13:42 ` [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set Dario Faggioli
@ 2012-06-07 16:41 ` Ian Jackson
2012-06-08 8:57 ` Dario Faggioli
0 siblings, 1 reply; 5+ messages in thread
From: Ian Jackson @ 2012-06-07 16:41 UTC (permalink / raw)
To: Dario Faggioli
Cc: George Dunlap, Juergen Gross, Ian Campbell,
xen-devel@lists.xen.org
Dario Faggioli writes ("[PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set"):
> So that the caller (e.g., libxl__build_post() ) knows and can deal with it.
...
> - libxl_domain_sched_params_set(CTX, domid, &info->sched_params);
> + if (libxl_domain_sched_params_set(CTX, domid, &info->sched_params))
> + return ERROR_INVAL;
This is not correct. It should return whatever error code
libxl_domain_sched_params_set returns, not unconditionally
ERROR_INVAL.
Ian.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set
2012-06-07 16:41 ` Ian Jackson
@ 2012-06-08 8:57 ` Dario Faggioli
0 siblings, 0 replies; 5+ messages in thread
From: Dario Faggioli @ 2012-06-08 8:57 UTC (permalink / raw)
To: Ian Jackson
Cc: George Dunlap, Juergen Gross, Ian Campbell,
xen-devel@lists.xen.org
[-- Attachment #1.1: Type: text/plain, Size: 942 bytes --]
On Thu, 2012-06-07 at 17:41 +0100, Ian Jackson wrote:
> Dario Faggioli writes ("[PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set"):
> > So that the caller (e.g., libxl__build_post() ) knows and can deal with it.
> ...
> > - libxl_domain_sched_params_set(CTX, domid, &info->sched_params);
> > + if (libxl_domain_sched_params_set(CTX, domid, &info->sched_params))
> > + return ERROR_INVAL;
>
> This is not correct. It should return whatever error code
> libxl_domain_sched_params_set returns, not unconditionally
> ERROR_INVAL.
>
Ops, you're right, sorry... New version coming!
Thanks and Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://retis.sssup.it/people/faggioli
Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK)
[-- Attachment #1.2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-06-08 8:57 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-07 13:42 [PATCH 0 of 2 v2] Sanity checking of scheduling parameters Dario Faggioli
2012-06-07 13:42 ` [PATCH 1 of 2 v2] libxl: propagete down the error from libxl_domain_sched_params_set Dario Faggioli
2012-06-07 16:41 ` Ian Jackson
2012-06-08 8:57 ` Dario Faggioli
2012-06-07 13:42 ` [PATCH 2 of 2 v2] xl: check for meaningful combination of sedf config file parameters Dario Faggioli
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.