From: Peter Williams <pwil3058@bigpond.net.au>
To: Sam Vilain <sam@vilain.net>
Cc: "Björn Steinbrink" <B.Steinbrink@gmx.de>,
"Mike Galbraith" <efault@gmx.de>,
"Con Kolivas" <kernel@kolivas.org>,
"Linux Kernel" <linux-kernel@vger.kernel.org>,
"Kingsley Cheung" <kingsley@aurema.com>,
"Ingo Molnar" <mingo@elte.hu>,
"Rene Herman" <rene.herman@keyaccess.nl>,
"Herbert Poetzl" <herbert@13thfloor.at>,
"Kirill Korotaev" <dev@sw.ru>,
"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: [RFC 0/5] sched: Add CPU rate caps
Date: Tue, 30 May 2006 12:45:26 +1000 [thread overview]
Message-ID: <447BB1C6.9050901@bigpond.net.au> (raw)
In-Reply-To: <447BA8ED.3080904@vilain.net>
Sam Vilain wrote:
> Peter Williams wrote:
>
>>> I'd certainly be interested in having a look through the split out patch
>>> to see how namespaces and this advanced scheduling system might
>>> interoperate.
>>>
>>>
>> OK. I've tried very hard to make the scheduling code orthogonal to
>> everything else and it essentially separates out the scheduling within a
>> CPU from other issues e.g. load balancing. This separation is
>> sufficiently good for me to have merged PlugSched with an earlier
>> version of CKRM's CPU management module in a way that made each of
>> PlugSched's schedulers available within CKRM's infrastructure. (CKRM
>> have radically rewritten their CPU code since then and I haven't
>> bothered to keep up.)
>>
>> The key point that I'm trying to make is that I would expect PlugSched
>> and namespaces to coexist without any problems. How it integrates with
>> the "advanced" scheduling system would depend on how that system alters
>> things such as load balancing and/or whether it goes for scheduling
>> outcomes at a higher level than the task.
>>
>>
>
> Coexisting is the base line and I don't think they'll 'interfere' with
> each other, per se, but we specifically want to make it easy for
> userland to set up and configure scheduling policies to apply to groups
> of processes.
They shouldn't interfere as which scheduler to use is a boot time
selection and only one scheduler is in force. It's mainly a coding
matter and in particular whether the "scheduler driver" interface would
need to be modified or whether your scheduler can be implemented using
the current interface.
>
> For instance, the vserver scheduling extension I wrote changes
> scheduling policy so that the interactivity bonus is reduced to -5 ..
> -5, and -5 .. +15 is given as a bonus or penalty for an entire vserver
> that is currently below or above its allocated CPU quotient. In this
> case the scheduling algorithm hasn't changed, just more feedback is
> given into the effective priorities of the processes being scheduled.
> ie, there are now two "inputs" (task and vserver) to the existing scheduler.
>
> I guess the big question is - is there a corresponding concept in
> PlugSched? for instance, is there a reference in the task_struct to the
> current scheduling domain, or is it more CKRM-style with classification
> modules?
It uses the standard run queue structure with per scheduler
modifications (via a union) to handle the different ways that the
schedulers manage priority arrays (so yes). As I said it restricts
itself to scheduling matters within each run queue and leaves the wider
aspects to the normal code.
At first guess, it sounds like adding your scheduler could be as simple
as taking a copy of ingosched.c (which is the implementation of the
standard scheduler within PlugSched) and then making your modifications.
You could probably even share the same run queue components but
there's nothing to stop you adding new ones.
Each scheduler can also have its own per task data via a union in the
task struct.
>
> If there is a reference in the task_struct to some set of scheduling
> counters, maybe we could squint and say that looks like a namespace, and
> throw it into the nsproxy.
Depends on the scheduler.
>
>> I'm assuming that you're happy to wait for the next release? That will
>> improve the likelihood of descriptions in the patches :-).
>>
>>
>
> Let's keep it the technical dialogue going for now, then.
OK. I'm waiting for the next -mm kernel before I make the next release.
>
> Now, forgive me if I'm preaching to the vicar here, but have you tried
> using Stacked Git for the patch development?
No, I actually use the gquilt GUI wrapper for quilt
<http://freshmeat.net/projects/gquilt/> and, although I've modified it
to use a generic interface to the underlying patch management system
(a.k.a. back end), I haven't yet modified it to use Stacked GIT as a
back end. I have thought about it and it was the primary motivation for
adding the generic interface but I ran out of enthusiasm.
> I find the way that you
> build patch descriptions as you go along, can easily wind the commit
> stack to work on individual patches and import other people's work to be
> very simple and powerful.
>
> http://www.procode.org/stgit/
>
> I just mention this because you're not the first person I've talked to
> using Quilt to express some difficulty in producing incremental patchset
> snapshots. Not having used Quilt myself I'm unsure whether this is a
> deficiency or just "the way it is" once a patch set gets big.
Making quilt easier to use is why I wrote gquilt :-)
Peter
--
Peter Williams pwil3058@bigpond.net.au
"Learning, n. The kind of ignorance distinguishing the studious."
-- Ambrose Bierce
next prev parent reply other threads:[~2006-05-30 2:45 UTC|newest]
Thread overview: 95+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-26 4:20 Peter Williams
2006-05-26 4:20 ` [RFC 1/5] sched: Fix priority inheritence before CPU rate soft caps Peter Williams
2006-05-26 4:20 ` [RFC 2/5] sched: Add " Peter Williams
2006-05-26 10:48 ` Con Kolivas
2006-05-26 11:15 ` Mike Galbraith
2006-05-26 11:17 ` Con Kolivas
2006-05-26 11:30 ` Mike Galbraith
2006-05-26 13:55 ` Peter Williams
2006-05-27 6:31 ` Balbir Singh
2006-05-27 7:03 ` Peter Williams
2006-05-28 0:11 ` Peter Williams
2006-05-28 7:38 ` Balbir Singh
2006-05-28 13:35 ` Peter Williams
2006-05-28 14:42 ` Balbir Singh
2006-05-28 23:27 ` Peter Williams
2006-05-31 13:17 ` Kirill Korotaev
2006-05-31 23:39 ` Peter Williams
2006-06-01 8:09 ` Kirill Korotaev
2006-06-01 23:38 ` Peter Williams
2006-06-02 1:35 ` Peter Williams
2006-05-26 4:20 ` [RFC 3/5] sched: Add CPU rate hard caps Peter Williams
2006-05-26 6:58 ` Kari Hurtta
2006-05-27 1:00 ` Peter Williams
2006-05-26 11:00 ` Con Kolivas
2006-05-26 13:59 ` Peter Williams
2006-05-26 14:12 ` Con Kolivas
2006-05-26 14:23 ` Mike Galbraith
2006-05-27 0:16 ` Peter Williams
2006-05-27 9:28 ` Mike Galbraith
2006-05-28 2:09 ` Peter Williams
2006-05-27 6:48 ` Balbir Singh
2006-05-27 8:44 ` Peter Williams
2006-05-31 13:10 ` Kirill Korotaev
2006-05-31 15:59 ` Balbir Singh
2006-05-31 18:09 ` Mike Galbraith
2006-06-01 7:41 ` Kirill Korotaev
2006-06-01 8:34 ` Balbir Singh
2006-06-01 18:43 ` [ckrm-tech] " Chandra Seetharaman
2006-06-01 23:26 ` Peter Williams
2006-06-02 2:02 ` Chandra Seetharaman
2006-06-02 3:21 ` Peter Williams
2006-06-02 8:32 ` Balbir Singh
2006-06-02 13:30 ` Peter Williams
2006-06-02 18:58 ` Balbir Singh
2006-06-02 23:49 ` Peter Williams
2006-06-03 4:59 ` Balbir Singh
2006-06-02 19:06 ` Chandra Seetharaman
2006-06-03 0:04 ` Peter Williams
2006-06-02 0:36 ` Con Kolivas
2006-06-02 2:03 ` [ckrm-tech] " Chandra Seetharaman
2006-06-02 5:55 ` [ckrm-tech] [RFC 3/5] " Peter Williams
2006-06-02 7:47 ` Kirill Korotaev
2006-06-02 13:34 ` Peter Williams
2006-06-05 22:11 ` Sam Vilain
2006-06-06 8:24 ` Kirill Korotaev
2006-06-06 9:13 ` Con Kolivas
2006-06-06 9:28 ` Kirill Korotaev
2006-06-02 8:46 ` Mike Galbraith
2006-06-02 13:18 ` Peter Williams
2006-06-02 14:47 ` Mike Galbraith
2006-06-03 0:08 ` Peter Williams
2006-06-03 6:02 ` Mike Galbraith
2006-06-03 11:03 ` Peter Williams
2006-06-06 11:26 ` Srivatsa Vaddagiri
2006-06-02 7:34 ` Kirill Korotaev
2006-06-02 21:23 ` Shailabh Nagar
2006-06-01 23:47 ` Sam Vilain
2006-06-01 23:43 ` Peter Williams
2006-05-31 23:28 ` Peter Williams
2006-06-01 7:44 ` Kirill Korotaev
2006-06-01 23:21 ` Peter Williams
2006-05-26 4:21 ` [RFC 4/5] sched: Add procfs interface for CPU rate soft caps Peter Williams
2006-05-26 4:21 ` [RFC 5/5] sched: Add procfs interface for CPU rate hard caps Peter Williams
2006-05-26 8:04 ` [RFC 0/5] sched: Add CPU rate caps Mike Galbraith
2006-05-26 16:11 ` Björn Steinbrink
2006-05-28 22:46 ` Sam Vilain
2006-05-28 23:30 ` Peter Williams
2006-05-29 3:09 ` Sam Vilain
2006-05-29 3:41 ` Peter Williams
2006-05-29 21:16 ` Sam Vilain
2006-05-29 23:12 ` Peter Williams
2006-05-30 2:07 ` Sam Vilain
2006-05-30 2:45 ` Peter Williams [this message]
2006-05-30 22:05 ` Sam Vilain
2006-05-30 23:22 ` Peter Williams
2006-05-30 23:25 ` Peter Williams
2006-06-05 23:56 ` Peter Williams
2006-05-27 0:16 ` Peter Williams
2006-05-26 10:41 ` Con Kolivas
2006-05-27 1:28 ` Peter Williams
2006-05-27 1:42 ` Con Kolivas
2006-05-26 11:09 ` Con Kolivas
2006-05-26 14:00 ` Peter Williams
2006-05-26 11:29 ` Balbir Singh
2006-05-27 1:40 ` Peter Williams
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=447BB1C6.9050901@bigpond.net.au \
--to=pwil3058@bigpond.net.au \
--cc=B.Steinbrink@gmx.de \
--cc=dev@sw.ru \
--cc=ebiederm@xmission.com \
--cc=efault@gmx.de \
--cc=herbert@13thfloor.at \
--cc=kernel@kolivas.org \
--cc=kingsley@aurema.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rene.herman@keyaccess.nl \
--cc=sam@vilain.net \
/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
all inboxes | Powered by JetHome®