From: Joshua Whitehead <josh.whitehead@dornerworks.com>
To: George Dunlap <george.dunlap@eu.citrix.com>,
Dario Faggioli <dario.faggioli@citrix.com>
Cc: Ian Campbell <ian.campbell@citrix.com>,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Ian Jackson <ian.jackson@eu.citrix.com>,
Robert VanVossen <robert.vanvossen@dornerworks.com>,
Xen-devel <xen-devel@lists.xen.org>,
Nate Studer <nate.studer@gmail.com>,
Jan Beulich <JBeulich@suse.com>
Subject: Re: [RFC PATCH 3/4] Updated comments/variables to reflect cbs, fixed formatting and confusing comments/variables
Date: Thu, 26 Jun 2014 17:30:25 -0400 [thread overview]
Message-ID: <53AC90F1.5060905@dornerworks.com> (raw)
In-Reply-To: <53A17585.5030409@eu.citrix.com>
On 6/18/2014 7:18 AM, George Dunlap wrote:
> On 06/17/2014 05:11 PM, Dario Faggioli wrote:
>> On lun, 2014-06-16 at 16:29 +0100, George Dunlap wrote:
>>> On 06/16/2014 10:33 AM, Jan Beulich wrote:
>>>>>>> On 13.06.14 at 21:58, <josh.whitehead@dornerworks.com> wrote:
>>>>> --- a/xen/include/public/trace.h
>>>>> +++ b/xen/include/public/trace.h
>>>>> @@ -75,7 +75,7 @@
>>>>> /* Per-scheduler IDs, to identify scheduler specific events */
>>>>> #define TRC_SCHED_CSCHED 0
>>>>> #define TRC_SCHED_CSCHED2 1
>>>>> -#define TRC_SCHED_SEDF 2
>>>>> +#define TRC_SCHED_CBS 2
>>>> While the change to domctl.h is fine, I'm not sure we can allow simple
>>>> renaming elsewhere in the public headers (i.e. the old name may need
>>>> to remain there, guarded with a __XEN_INTERFACE_VERSION__
>>>> conditional).
>>> I think the tracing stuff is fine too -- we've always considered that
>>> non-stable (and have made incompatible changes across versions).
>>>
>>> But the libxl interfaces *do* need to have something sensible done with
>>> them.
>>>
>>> Given that, I think it would probably be better to make this patch series:
>>>
>>> 1/N: Add sched_cbs.c to Xen
>>> 2/N: Add cbs to toolstack
>>> 3/N: Remove sedf scheduler (with appropriate backwards-compatibility bits)
>>>
>>> I think that would make it a bit easier to review as well.
>>>
>> As far as this patch is concerned, I agree with George.
>>
>> However... Is removing SEDF an option? Is radically changing, if not
>> it's behavior (as it's known to be pretty broken), the expectations of
>> an user, e.g., of an old application being compiled with a new version
>> of xen+libxl an option?
>>
>> If yes, what's the process to do that?
>> Personally, I'm all for having a really working real-time scheduling
>> solution, and you all know that. :-) However, especially considering
>> Josh's and Robbie's series, I think I would not remove or rename SEDF, I
>> rather "just" amend the implementation.
>>
>> In future, it would be interesting to introduce more advanced real-time
>> scheduling features an capabilities, like the ones coming from RT-Xen
>> (and the RT-Xen guys are working on doing that), but I think that can be
>> done step-by-step, and without any massive renaming or removal.
>>
>> So, I'm asking, mostly to George, about the overall scheduling aspects
>> and implications, and to the tools maintainer, as that's where API
>> stability is to be enforced: should this be a concern? In what sense API
>> stability applies here? Can we, for example, start to ignore one or more
>> SEDF scheduling parameters?
Just wanted to throw in a few comments:
>
> Well the primary thing is that programs using the old interface still
> need to compile. This could be done with the libxl interface version
> #ifdef-ery.
>
This should be simple to add, we'll try to take a look at that for V2, but it
may be better to wait until V3 so we can get some more feedback on the series
before making too many of those types of changes and can see what's actually
necessary.
> One of the things that makes this handy is that the only way a user can
> *set* SEDF via libxl is when they create a cpupool; all the other uses
> are just recognizing SEDF if it's actually the scheduler already.
>
> Re the functionality: for one, if nobody is actually using it, we don't
> need to keep it around. One advantage of adding a CBS scheduler and
> just removing the SEDF scheduler is that it should make it pretty clear
> who those people are, and make putting it back pretty easy.
>
> If someone is using it -- I think asking them to switch to the
> (presumably) better CBS scheduler makes sense, since it accomplishes
> much the same thing.
>
One of our motivations behind modifying the SEDF was our general impression that
it was no longer in use in any serious way by anyone in the Xen community as
there were better general purpose schedules available (credit/credit2) and the
modifications to it made it unsuitable for real-time use.
> On the whole, I'm inclined to say we should just go ahead and change the
> SEDF interface in place rather than introducing a new scheduler.
>
> The question then comes with the parameters: whether it's better to
> attempt to keep working the best you can, or whether it's better to
> alert the admin to the fact that the scheduler has changed significantly
> and it's time to re-tweak the system.
>
> I'm inclined to say that we should:
> * Leave the name and number as sedf
> * Remove parameters no longer being used, gated with the LIBXL_API_VERSION.
> * For all schedulers, if parameters that are not used are set to
> anything other than LIBXL_DOMAIN_SCHED_PARAM_{FOO}_DEFAULT,
> libxl_domain_set_sched_params() should return an error.
>
I commented on it in an earlier e-mail as well, but I thought I'd put it here
too- I think this is the path our V2 of the patch series will focus on. Keep
the SEDF naming scheme in general, update names and parameters only on a limited
basis ("change the SEDF interface in place" as George said), and reorganize the
patch to be easier to review. This should also put it in a good position to add
functionality in the future (from RT-Xen or otherwise).
> Alternately, we could have libxl throw a warning that we're ignoring a
> parameter in most cases; and in the case of no longer used parameters,
> warn specifically that it's no longer implemented. We could maybe also
> point them to some documentation, and in the documentation say to
> contact the xen-devel list if you're still using it.
>
We would also be willing to add this as desired :-)
Thanks again George for your input as well!
- Josh Whitehead
> If people complain, then we can try to accomodate them. But at very
> least we get an idea if anyone actually cares. :-)
>
> -George
>
next prev parent reply other threads:[~2014-06-26 21:30 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-13 19:58 [RFC PATCH 0/4] Repurpose SEDF Scheduler for Real-time use Josh Whitehead
2014-06-13 19:58 ` [RFC PATCH 1/4] Implement cbs algorithm, remove extra queues, latency scaling, and weight support from sedf Josh Whitehead
2014-06-17 15:43 ` Dario Faggioli
2014-06-26 20:17 ` Joshua Whitehead
2014-06-28 2:19 ` Dario Faggioli
2014-06-17 16:06 ` Dario Faggioli
2014-06-26 20:18 ` Joshua Whitehead
2014-06-28 2:27 ` Dario Faggioli
2014-06-13 19:58 ` [RFC PATCH 2/4] Add cbs parameter support to xl tool stack, remove defunct sedf parameters Josh Whitehead
2014-06-17 15:02 ` Dario Faggioli
2014-06-26 19:55 ` Joshua Whitehead
2014-06-13 19:58 ` [RFC PATCH 3/4] Updated comments/variables to reflect cbs, fixed formatting and confusing comments/variables Josh Whitehead
2014-06-16 9:33 ` Jan Beulich
2014-06-16 15:29 ` George Dunlap
2014-06-17 16:11 ` Dario Faggioli
2014-06-17 17:28 ` Dario Faggioli
2014-06-25 20:13 ` Meng Xu
2014-06-26 21:24 ` Joshua Whitehead
2014-06-28 2:13 ` Dario Faggioli
2014-06-18 11:18 ` George Dunlap
2014-06-26 21:30 ` Joshua Whitehead [this message]
2014-06-26 21:23 ` Joshua Whitehead
2014-06-28 2:09 ` Dario Faggioli
2014-06-13 19:58 ` [RFC PATCH 4/4] Changed filenames with sedf to cbs to reflect the actual scheduler Josh Whitehead
2014-06-16 7:25 ` [RFC PATCH 0/4] Repurpose SEDF Scheduler for Real-time use Dario Faggioli
2014-06-17 14:44 ` Dario Faggioli
2014-06-26 19:53 ` Joshua Whitehead
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=53AC90F1.5060905@dornerworks.com \
--to=josh.whitehead@dornerworks.com \
--cc=JBeulich@suse.com \
--cc=dario.faggioli@citrix.com \
--cc=george.dunlap@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=nate.studer@gmail.com \
--cc=robert.vanvossen@dornerworks.com \
--cc=stefano.stabellini@eu.citrix.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.