From: Dario Faggioli <raistlin@linux.it>
To: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: Ian.Jackson@citrix.com,
Juergen Gross <juergen.gross@ts.fujitsu.com>,
xen-devel@lists.xen.org, Ian Campbell <ian.campbell@citrix.com>,
George.Dunlap@citrix.com
Subject: Re: [PATCH 3 of 3] libxl: make it possible to explicitly specify default sched params
Date: Wed, 23 May 2012 23:19:35 +0200 [thread overview]
Message-ID: <1337807975.25349.9.camel@Abyss> (raw)
In-Reply-To: <CAFLBxZZ0mZGTLUr0ONCR3hLQc+6FDN5L6vB4q0kiAn_YosT4CA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 3467 bytes --]
On Wed, 2012-05-23 at 20:28 +0100, George Dunlap wrote:
> Overall the idea of the patch looks good. There's just the thing
> about shoving all the various schedulers' parameters into one struct.
>
Yep, I really don't like that either.
> One fall-out from it is that if you specify weight in your config file
> (or during domain creation), it will set the weight for credit or
> credit2, but use the defaults for sedf. This might be nice; but we're
> implicitly baking in an assumption that parameters with the same name
> have to have roughly similar meanings across all schedulers.
> Furthermore, if someone sets a "cap" in the config file, for example,
> but starts the VM in a pool running credit2, should we really just
> silently ignore it, or should we alert the user in some way?
>
I agree... Some mechanism for providing the user at least with a warning
would be useful.
> In any case, this patch only takes things half-way. If we're really
> going to have One Struct to Rule Them All, we don't need different
> domain_set/domain_get functions for the different schedulers -- we
> just need a libxl_sched_domain_get(), which will both figure out what
> scheduler the domain is running, and fill in the appropriate
> parameters, and a libxl_sched_domain_set(), which will check to see
> that you've asked for the right scheduler (or marked "unknown" if you
> aren't afraid), and set what it can set.
>
According to my personal taste, that would be quite ugly, not to mention
that every time we might be adding/removing/modifying a scheduler, we
would need to update this Frankenstein-struct, potentially affecting all
the other ones... :-(
> I'm not really sure which way I think is best. I can see the
> advantage of not having to know which scheduler is actually running,
> but I'm a bit wary of baking in assumptions about the equivalence of
> parameters; it seems like it could lead to some nasty surprises.
>
I agree again: the fact that, right now, _almost_ all the existing
schedulers have a parameter called weight with _almost_ the same meaning
shouldn't allow us to assume that to be true now and forever.
> But I think whichever way we choose, we should take it to its logical
> conclusion. Which in the "One Struct" way, would mean having a single
> domain_get/domain_set function, and in the "separate struct" way would
> probably mean specifying the scheduler -- i.e., "credit_weight",
> "credit2_weight" or something like that. (Obviously we need xm
> compatibility, but we can throw a warning to encourage people to
> change their config files.)
>
For what it counts, I'm all for option #2, i.e., each scheduler with its
own struct, set of helper functions, xl sub-command, etc. Something like
'credit.cap = XX', 'credit2.weight = XX' or 'sedf.period = XXX' would be
nice, for discriminating them in the config file. It'd remain to decide
what to do with things like 'weight = XX', which we need to support for
backward compatibility, but I guess almost anything is fine, provided we
warn the user about what's happening and ask him to update the syntax.
Just my 2 cents. :-)
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
next prev parent reply other threads:[~2012-05-23 21:19 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-23 9:26 [PATCH 0 of 3] libxl: make it possible to explicitly specify default sched params Ian Campbell
2012-05-23 9:26 ` [PATCH 1 of 3] libxl: add internal function to get a domain's scheduler Ian Campbell
2012-05-23 19:47 ` George Dunlap
2012-05-24 8:55 ` Ian Campbell
2012-05-24 9:16 ` Dario Faggioli
2012-05-23 9:26 ` [PATCH 2 of 3] libxl: rename libxl_sched_params to libxl_sched_domain_params Ian Campbell
2012-05-23 19:49 ` George Dunlap
2012-05-23 9:26 ` [PATCH 3 of 3] libxl: make it possible to explicitly specify default sched params Ian Campbell
2012-05-23 10:51 ` Ian Jackson
2012-05-23 11:12 ` Dario Faggioli
2012-05-24 8:52 ` Ian Campbell
2012-05-24 9:15 ` Dario Faggioli
2012-05-23 19:28 ` George Dunlap
2012-05-23 19:34 ` George Dunlap
2012-05-23 21:19 ` Dario Faggioli [this message]
2012-05-24 9:13 ` Ian Campbell
2012-05-24 9:36 ` Dario Faggioli
2012-05-24 13:57 ` Ian Jackson
2012-05-24 14:02 ` Ian Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1337807975.25349.9.camel@Abyss \
--to=raistlin@linux.it \
--cc=George.Dunlap@citrix.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=Ian.Jackson@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=juergen.gross@ts.fujitsu.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.