xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] xl: improve the comments for sedf parameters checking
@ 2012-06-21 14:19 Dario Faggioli
  2012-06-29 16:29 ` Ian Jackson
  0 siblings, 1 reply; 5+ messages in thread
From: Dario Faggioli @ 2012-06-21 14:19 UTC (permalink / raw)
  To: xen-devel; +Cc: Ian Jackson, Ian Campbell

As agreed during review of what has become 513d5e196e23.

No real functional changes.

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
@@ -565,28 +565,40 @@ static int sched_params_valid(libxl_doma
     if (sci.sched == LIBXL_SCHEDULER_SEDF) {
         if (has_weight && (has_period || has_slice))
             return 0;
+        /* If you want a real-time domain, with its own period and
+         * slice, please, do provide both! */
         if (has_period != has_slice)
             return 0;
 
         /*
          * Idea is, if we specify a weight, then both period and
-         * slice has to be zero. OTOH, if we do not specify a weight,
-         * that means we want a pure best effort domain or an actual
-         * real-time one. In the former case, it is period that needs
-         * to be zero, in the latter, weight should be.
+         * slice has to be zero. OTOH, if we do specify a period and
+         * slice, it is weight that should be zeroed. See
+         * docs/misc/sedf_scheduler_mini-HOWTO.txt for more details
+         * on the meaningful combinations and their meanings.
          */
         if (has_weight) {
             scp->slice = 0;
             scp->period = 0;
         }
         else if (!has_period) {
-            /* We can setup a proper best effort domain (extra time only)
-             * iff we either already have or are asking for some extra time. */
+            /* No weight nor slice/period means best effort. Parameters needs
+             * some mangling in order to properly ask for that, though. */
+
+            /*
+             * Providing no weight does not make any sense if we do not allow
+             * the domain to run in extra time. On the other hand, if we have
+             * extra time, weight will be ignored (and zeroed) by Xen, but it
+             * can't be zero here, or the call for setting the scheduling
+             * parameters will fail. So, avoid the latter by setting a random
+             * weight (namely, 1), as it will be ignored anyway.
+             */
             scp->weight = has_extratime ? scp->extratime : sci.extratime;
             scp->period = 0;
-        }
-        if (has_period && has_slice)
+        } else {
+            /* Real-time domain: will get slice CPU time over every period */
             scp->weight = 0;
+       }
     }
 
     return 1;

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-03  6:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-21 14:19 [PATCH] xl: improve the comments for sedf parameters checking Dario Faggioli
2012-06-29 16:29 ` Ian Jackson
2012-06-29 18:42   ` Ian Campbell
2012-07-02 10:36     ` Ian Jackson
2012-07-03  6:17       ` Dario Faggioli

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).