All of lore.kernel.org
 help / color / mirror / Atom feed
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 

  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 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.