From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Paul Jackson <pj@sgi.com>
Cc: holt@sgi.com, suresh.b.siddha@intel.com, dino@in.ibm.com,
menage@google.com, Simon.Derr@bull.net,
linux-kernel@vger.kernel.org, mbligh@google.com,
rohitseth@google.com, dipankar@in.ibm.com
Subject: Re: exclusive cpusets broken with cpu hotplug
Date: Thu, 19 Oct 2006 18:16:56 +1000 [thread overview]
Message-ID: <45373478.1030004@yahoo.com.au> (raw)
In-Reply-To: <20061019003316.f6a77b34.pj@sgi.com>
Paul Jackson wrote:
>>So that depends on what cpusets asks for. If, when setting up a and
>>b, it asks to partition the domains, then yes that breaks the parent
>>cpuset gets broken.
>
>
> That probably makes good sense from the sched domain side of things.
>
> It is insanely counterintuitive from the cpuset side of things.
>
> Using heirarchical cpuset properties to drive this is the wrong
> approach.
>
> In the general case, looking at it (as best I can) from the sched
> domain side of things, it seems that the sched domain could be
> defined on a system as follows.
>
> Partition the CPUs on the system - into one or more subsets
> (partitions), non-overlapping, and covering.
>
> Each of those partitions can either have a sched domain setup on
> it, to support load balancing across the CPUs in that partition,
> or can be isolated, with no load balancing occuring within that
> partition.
>
> No load balancing occurs across partitions.
Correct. But you don't have to treat isolated CPUs differently - they
are just the degenerate case of a partition of 1 CPU. I assume cpusets
could create similar "isolated" domains where no balancing takes place.
> Using cpu_exclusive cpusets for this is next to impossible. It could
> be approximated perhaps by having just the immediate children of the
> root cpuset, /dev/cpuset/*, define the partition.
Fine.
> But if any lower level cpusets have any affect on the partitioning,
> by setting their cpu_exclusive flag in the current implementation,
> it is -always- the case, by the basic structure of the cpuset
> hierarchy, that the lower level cpuset is a subset of its parents
> cpus, and that that parent also has cpu_exclusive set.
>
> The resulting partitioning, even in such simple examples as above, is
> not obvious. If you look back a couple days, when I first presented
> essentially this example, I got the resulting sched domain partitioning
> entirely wrong.
>
> The essential detail in my big patch of yesterday, to add new specific
> sched_domain flags to cpusets, is that it -removed- the requirement to
> mark a parent as defining a sched domain anytime a child defined one.
>
> That requirement is one of the defining properties of the cpu_exclusive
> flag, and makes that flag -outrageously- unsuited for defining sched
> domain partitions.
So make the new rule "cpu_exclusive && direct-child-of-root-cpuset".
Your problems go away, and they haven't been pushed to userspace.
If a user wants to, for some crazy reason, have a set of cpu_exclusive
sets deep in the cpuset hierarchy, such that no load balancing happens
between them... just tell them they can't; they should just make those
cpusets children of the root.
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
next prev parent reply other threads:[~2006-10-19 8:17 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-18 2:25 exclusive cpusets broken with cpu hotplug Siddha, Suresh B
2006-10-18 7:14 ` Paul Jackson
2006-10-18 9:56 ` Robin Holt
2006-10-18 10:10 ` Paul Jackson
2006-10-18 10:53 ` Robin Holt
2006-10-18 21:07 ` Paul Jackson
2006-10-19 5:56 ` Paul Jackson
2006-10-18 12:16 ` Nick Piggin
2006-10-18 14:14 ` Siddha, Suresh B
2006-10-18 14:51 ` Nick Piggin
2006-10-19 6:15 ` Paul Jackson
2006-10-19 6:35 ` Nick Piggin
2006-10-19 6:57 ` Paul Jackson
2006-10-19 7:04 ` Nick Piggin
2006-10-19 7:33 ` Paul Jackson
2006-10-19 8:16 ` Nick Piggin [this message]
2006-10-19 8:31 ` Paul Jackson
2006-10-19 7:34 ` Paul Jackson
2006-10-19 8:07 ` Nick Piggin
2006-10-19 8:11 ` Paul Jackson
2006-10-19 8:22 ` Nick Piggin
2006-10-19 8:42 ` Paul Jackson
2006-10-18 17:54 ` Dinakar Guniguntala
2006-10-18 18:05 ` 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=45373478.1030004@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=Simon.Derr@bull.net \
--cc=dino@in.ibm.com \
--cc=dipankar@in.ibm.com \
--cc=holt@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@google.com \
--cc=menage@google.com \
--cc=pj@sgi.com \
--cc=rohitseth@google.com \
--cc=suresh.b.siddha@intel.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