From: Dario Faggioli <dario.faggioli@citrix.com>
To: Meng Xu <xumengpanda@gmail.com>
Cc: "ian.campbell@citrix.com" <ian.campbell@citrix.com>,
"xisisu@gmail.com" <xisisu@gmail.com>,
"stefano.stabellini@eu.citrix.com"
<stefano.stabellini@eu.citrix.com>,
"george.dunlap@eu.citrix.com" <george.dunlap@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
"ian.jackson@eu.citrix.com" <ian.jackson@eu.citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Meng Xu <mengxu@cis.upenn.edu>,
"lichong659@gmail.com" <lichong659@gmail.com>,
"dgolomb@seas.upenn.edu" <dgolomb@seas.upenn.edu>
Subject: Re: [PATCH RFC v1 1/4] rt: Add rt scheduler to hypervisor
Date: Thu, 17 Jul 2014 17:12:26 +0200 [thread overview]
Message-ID: <1405609946.5333.144.camel@Solace> (raw)
In-Reply-To: <CAENZ-+=USe0j-tPtajCvmLPJud5an710NJHWJzv5wOUAT0+vgA@mail.gmail.com>
[-- Attachment #1.1: Type: text/plain, Size: 4585 bytes --]
On gio, 2014-07-17 at 06:12 -0400, Meng Xu wrote:
> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>于2014年7月16日星期三写
> 道:
> DS9 :-)
>
> XEN_SCHEDULER_RT_PGEDF ?
>
> And then we can also have
> XEN_SCHEDULER_RT_CBS ?
>
>
>
> I see your concerns about the name here.
> The strength of the name you proposed, such as XEN_SCHEDULER_RT_PGEDF
> or XEN_SCHEDULER_RT_DS, is that it clearly states the characteristics
> of this scheduler.
>
Agreed, and I'd go fo XEN_SCHEDULER_RT_DS. It means people have to learn
at least the basics of what _D_eferrable _S_erver means (which in turns
mean we must provide decent documentation! :-P), but if we want to go
for being specific, let's go there at full blast :-)
(and being specific means mentioning the actual algorithm, while GEDF is
sort of a 'basis', that many algorithms can share, and I don't think I
got what the 'P' in PGEDF stands for... did you perhaps mean
'PG'='Partitioned & Global'?)
> However, if people want to implement a new server mechanism for the
> EDF scheduling policy, they actually don't have to implement a fresh
> new one and add new sched_*.c files. They only need to modify the
> budget_update() and burn_budget() functions based on the new server
> mechanism. (Actually, we can make this scheduler more generic to make
> it easier to add a new server mechanism just as the schedule.c does.)
>
> In addition, if people want to implement a new real-time scheduling
> policy, like Rate Monotonic scheduling, they only need to modify a few
> lines in sched_rt.c. (We actually had the Rate Monotonic scheduling
> already, but only extract the EDF one for Xen right now to avoid
> causing unnecessary confusion.)
>
> So adding new server mechanisms and adding new scheduling policy
> (i.e., priority schemes) only requires modify several functions in
> sched_rt.c, instead of creating a fresh new file and scheduler. If we
> use the too specific name, like XEN_SCHEDULER_RT_DS, we will have to
> modify the name in the future when we extend the scheduler. Of
> course, we could also implement a fresh new scheduler, such as
> XEN_SCHEDULER_RT_CBS, or XEN_SCHEDULER_RT_PS (periodic server), in a
> brand new file, but it's actually unnecessary to introduce a new
> file.
>
This is all true. However, I think I agree with Andrew and Konrad about
the need of being a bit more specific with naming.
Probably, I'd distinguish the name of the source file and the name of
the scheduling policy(ies). In fact, as you say, sched_rt.cc is probably
fine, as one may just implement new/different things hacking its
content, without the need of adding a new one.
At that point, you can well introduce, say, XEN_SCHEDULER_RT_CBS, which,
as far as the implementation is concerned, only modifies a function or
two in sched_rt.c, but for the user perspective, it's a different
scheduling policy, and it makes sense for it to have a different name.
Both (or more, if we like) scheduling policies may well even coexist,
share most of the code in sched_rt.c, and yet being two different
scheduling policies...
> Of course, I'm not against using the more specific name, such as
> XEN_SCHEDULER_RT_DS. What I'm concerned is: when we implement a new
> server mechanism or new scheduling policy inside the current
> sched_rt.c, the too specific name will become impropriate and we will
> have to change name again. :-)
>
As I said, it's always going to be an RT related scheduling policy so,
if the algorithm will be similar enough, it could be a first class
citizen inside sched_rt.c.
If we want to have more than a scheduling policy, we *need* names (of
the policies, not of the source file) to be specific.
The only downside of the specific name is if we at some point will want
to _replace_, rather than add, the DS algorithm with some other thing.
But even in that case, I don't think there will be much issues: at the
Xen level (not much compatibility requirements) we can just kill the old
and introduce the new. At the libxl level, we'll handle API stability in
the usual ways.
So, yes, I think I'm all for XEN_SCHEDULER_RT_DS implemented in
xen/common/sched_rt.c.
Regards,
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.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: 181 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:[~2014-07-17 15:12 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-11 4:49 Introduce rt real-time scheduler for Xen Meng Xu
2014-07-11 4:49 ` [PATCH RFC v1 1/4] rt: Add rt scheduler to hypervisor Meng Xu
2014-07-11 14:27 ` Dario Faggioli
2014-07-11 14:37 ` Andrew Cooper
2014-07-11 15:21 ` Dario Faggioli
2014-07-11 15:40 ` Andrew Cooper
2014-07-11 15:48 ` Dario Faggioli
2014-07-16 17:05 ` Konrad Rzeszutek Wilk
2014-07-17 10:12 ` Meng Xu
2014-07-17 15:12 ` Dario Faggioli [this message]
2014-07-18 5:46 ` Meng Xu
2014-07-18 18:40 ` Konrad Rzeszutek Wilk
2014-07-11 4:49 ` [PATCH RFC v1 2/4] xl for rt scheduler Meng Xu
2014-07-11 11:02 ` Wei Liu
2014-07-11 14:59 ` Meng Xu
2014-07-11 15:07 ` Dario Faggioli
2014-07-11 16:25 ` Meng Xu
2014-07-13 12:58 ` Meng Xu
2014-07-14 7:40 ` Dario Faggioli
2014-07-14 9:31 ` Wei Liu
2014-07-17 15:39 ` Ian Campbell
2014-07-11 4:49 ` [PATCH RFC v1 3/4] libxl " Meng Xu
2014-07-11 11:05 ` Wei Liu
2014-07-11 15:08 ` Dario Faggioli
2014-07-12 18:16 ` Meng Xu
2014-07-14 10:38 ` Dario Faggioli
2014-07-17 15:34 ` Ian Campbell
2014-07-17 15:36 ` Ian Campbell
2014-07-18 11:05 ` Meng Xu
2014-07-11 4:49 ` [PATCH RFC v1 4/4] libxc " Meng Xu
2014-07-11 14:49 ` Dario Faggioli
2014-07-11 16:23 ` Meng Xu
2014-07-11 16:35 ` Dario Faggioli
2014-07-11 16:49 ` Andrew Cooper
2014-07-12 19:46 ` Meng Xu
2014-07-17 15:29 ` Ian Campbell
2014-07-17 15:34 ` George Dunlap
2014-07-17 22:16 ` Meng Xu
2014-07-18 9:49 ` Dario Faggioli
2014-07-18 9:51 ` Ian Campbell
2014-07-18 12:11 ` Meng Xu
2014-07-18 9:47 ` Ian Campbell
2014-07-18 10:00 ` Dario Faggioli
2014-07-11 10:50 ` Introduce rt real-time scheduler for Xen Wei Liu
2014-07-11 11:06 ` Dario Faggioli
2014-07-11 16:14 ` Meng Xu
2014-07-11 16:19 ` Dario Faggioli
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=1405609946.5333.144.camel@Solace \
--to=dario.faggioli@citrix.com \
--cc=andrew.cooper3@citrix.com \
--cc=dgolomb@seas.upenn.edu \
--cc=george.dunlap@eu.citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=lichong659@gmail.com \
--cc=mengxu@cis.upenn.edu \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xen.org \
--cc=xisisu@gmail.com \
--cc=xumengpanda@gmail.com \
/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 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).