From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Paul Jackson <pj@sgi.com>
Cc: dino@in.ibm.com, Simon.Derr@bull.net,
lkml <linux-kernel@vger.kernel.org>,
lse-tech@lists.sourceforge.net, Andrew Morton <akpm@osdl.org>,
dipankar@in.ibm.com, colpatch@us.ibm.com
Subject: Re: [RFC PATCH] Dynamic sched domains aka Isolated cpusets
Date: Tue, 19 Apr 2005 16:19:35 +1000 [thread overview]
Message-ID: <1113891575.5074.46.camel@npiggin-nld.site> (raw)
In-Reply-To: <20050418225427.429accd5.pj@sgi.com>
On Mon, 2005-04-18 at 22:54 -0700, Paul Jackson wrote:
> Now, onto the real stuff.
>
> This same issue, in a strange way, comes up on the memory side,
> as well as on the cpu side.
>
> First, let me verify one thing. I understand that the _key_
> purpose of your patch is not so much to isolate cpus, as it
> is to allow for structuring scheduling domains to align with
> cpuset boundaries. I understand real isolated cpus to be ones
> that don't have a scheduling domain (have only the dummy one),
> as requested by the "isolcpus=..." boot flag.
>
Yes.
> The following code snippet from kernel/sched.c is what I derive
> this understanding from:
>
Correct. A better name instead of isolated cpusets may be
'partitioned cpusets' or somesuch.
On the other hand, it is more or less equivalent to a single
isolated CPU. Instead of an isolated cpu, you have an isolated
cpuset.
Though I imagine this becomes a complete superset of the
isolcpus= functionality, and it would actually be easier to
manage a single isolated CPU and its associated processes with
the cpusets interfaces after this.
> In both cases, we have an intermediate degree of partitioning
> of a system, neither at the most detailed leaf cpuset, nor at
> the all encompassing top cpuset. And in both cases, we want
> to partition the system, along cpuset boundaries.
>
Yep. This sched-domains partitioning only works when you have
more than one completely disjoint top level cpusets. That is,
you effectively partition the CPUs.
It doesn't work if you have *most* jobs bound to either
{0, 1, 2, 3} or {4, 5, 6, 7} but one which should be allowed
to use any CPU from 0-7.
> Here I use "partition" in the mathematical sense:
>
> ===============================================================
> A partition of a set X is a set of nonempty subsets of X such
> that every element x in X is in exactly one of these subsets.
>
> Equivalently, a set P of subsets of X, is a partition of X if
>
> 1. No element of P is empty.
> 2. The union of the elements of P is equal to X. (We say the
> elements of P cover X.)
> 3. The intersection of any two elements of P is empty. (We say
> the elements of P are pairwise disjoint.)
>
> http://www.absoluteastronomy.com/encyclopedia/p/pa/partition_of_a_set.htm
> ===============================================================
>
> In the case of cpus, we really do prefer the partitions to be
> disjoint, because it would be better not to confuse the domain
> scheduler with overlapping domains.
>
Yes. The domain scheduler can't handle this at all, it would
have to fall back on cpus_allowed, which in turn can create
big problems for multiprocessor balancing.
> For the cpu case, we would provide a scheduler domain for each
> subset of the cpu partitioning.
>
Yes.
[snip the rest, which I didn't finish reading :P]
>From what I gather, this partitioning does not exactly fit
the cpusets architecture. Because with cpusets you are specifying
on what cpus can a set of tasks run, not dividing the whole system.
Basically for the sched-domains code to be happy, there should be
some top level entity (whether it be cpusets or something else) which
records your current partitioning (the default being one set,
containing all cpus).
> As stated above, there is a single system wide partition of
> cpus, and another of mems. I suspect we should consider finding
> a way to nest partitions. My (shakey) understanding of what
> Nick is doing with scheduler domains is that for the biggest of
> systems, we will probably want little scheduler domains inside
> bigger ones.
The sched-domains setup code will take care of all that for you
already. It won't know or care about the partitions. If you
partition a 64-way system into 2 32-ways, the domain setup code
will just think it is setting up a 32-way system.
Don't worry about the sched-domains side of things at all, that's
pretty easy. Basically you just have to know that it has the
capability to partition the system in an arbitrary disjoint set
of sets of cpus.
If you can make use of that, then we're in business ;)
--
SUSE Labs, Novell Inc.
next prev parent reply other threads:[~2005-04-19 6:19 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-07 0:51 [RFC PATCH] scheduler: Dynamic sched_domains Matthew Dobson
2004-10-07 2:13 ` Nick Piggin
2004-10-07 17:01 ` Jesse Barnes
2004-10-08 5:55 ` [Lse-tech] " Takayoshi Kochi
2004-10-08 6:08 ` Nick Piggin
2004-10-08 16:43 ` Jesse Barnes
2004-10-07 21:58 ` Matthew Dobson
2004-10-08 0:22 ` Nick Piggin
2004-10-07 22:20 ` Matthew Dobson
2004-10-07 4:12 ` [ckrm-tech] " Marc E. Fiuczynski
2004-10-07 5:35 ` Paul Jackson
2004-10-07 22:06 ` Matthew Dobson
2004-10-07 9:32 ` Paul Jackson
2004-10-08 10:14 ` [Lse-tech] " Erich Focht
2004-10-08 10:40 ` Nick Piggin
2004-10-08 15:50 ` [ckrm-tech] " Hubertus Franke
2004-10-08 22:48 ` Matthew Dobson
2004-10-08 18:54 ` Matthew Dobson
2004-10-08 21:56 ` Peter Williams
2004-10-08 22:52 ` Matthew Dobson
2004-10-08 23:13 ` Erich Focht
2004-10-08 23:50 ` Nick Piggin
2004-10-10 12:25 ` Erich Focht
2004-10-08 22:51 ` Erich Focht
2004-10-09 1:05 ` Matthew Dobson
2004-10-10 12:45 ` Erich Focht
2004-10-12 22:45 ` Matthew Dobson
2004-10-08 18:45 ` Matthew Dobson
2005-04-18 20:26 ` [RFC PATCH] Dynamic sched domains aka Isolated cpusets Dinakar Guniguntala
2005-04-18 23:44 ` Nick Piggin
2005-04-19 8:00 ` Dinakar Guniguntala
2005-04-19 5:54 ` Paul Jackson
2005-04-19 6:19 ` Nick Piggin [this message]
2005-04-19 6:59 ` Paul Jackson
2005-04-19 7:09 ` Nick Piggin
2005-04-19 7:25 ` Paul Jackson
2005-04-19 7:28 ` Paul Jackson
2005-04-19 7:19 ` Paul Jackson
2005-04-19 7:57 ` Nick Piggin
2005-04-19 20:34 ` Paul Jackson
2005-04-23 23:26 ` Paul Jackson
2005-04-26 0:52 ` Matthew Dobson
2005-04-26 0:59 ` Paul Jackson
2005-04-19 9:52 ` Dinakar Guniguntala
2005-04-19 15:26 ` Paul Jackson
2005-04-20 7:37 ` Dinakar Guniguntala
2005-04-19 20:42 ` Paul Jackson
2005-04-19 8:12 ` Simon Derr
2005-04-19 16:19 ` Paul Jackson
2005-04-19 9:34 ` [Lse-tech] " Dinakar Guniguntala
2005-04-19 17:23 ` Paul Jackson
2005-04-20 7:16 ` Dinakar Guniguntala
2005-04-20 19:09 ` Paul Jackson
2005-04-21 16:27 ` Dinakar Guniguntala
2005-04-22 21:26 ` Paul Jackson
2005-04-23 7:24 ` Dinakar Guniguntala
2005-04-23 22:30 ` Paul Jackson
2005-04-25 11:53 ` Dinakar Guniguntala
2005-04-25 14:38 ` Paul Jackson
2005-04-21 17:31 ` [RFC PATCH] Dynamic sched domains aka Isolated cpusets (v0.2) Dinakar Guniguntala
2005-04-22 18:50 ` Paul Jackson
2005-04-22 21:37 ` Paul Jackson
2005-04-23 3:11 ` Paul Jackson
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=1113891575.5074.46.camel@npiggin-nld.site \
--to=nickpiggin@yahoo.com.au \
--cc=Simon.Derr@bull.net \
--cc=akpm@osdl.org \
--cc=colpatch@us.ibm.com \
--cc=dino@in.ibm.com \
--cc=dipankar@in.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
--cc=pj@sgi.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
all inboxes | Powered by JetHome®