All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.