From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Paul Jackson <pj@sgi.com>
Cc: akpm@osdl.org, mbligh@google.com, menage@google.com,
Simon.Derr@bull.net, linux-kernel@vger.kernel.org,
dino@in.ibm.com, rohitseth@google.com, holt@sgi.com,
dipankar@in.ibm.com, suresh.b.siddha@intel.com
Subject: Re: [RFC] cpuset: remove sched domain hooks from cpusets
Date: Fri, 20 Oct 2006 05:21:58 +1000 [thread overview]
Message-ID: <4537D056.9080108@yahoo.com.au> (raw)
In-Reply-To: <20061019120358.6d302ae9.pj@sgi.com>
Paul Jackson wrote:
> Nick wrote:
>
>>You shouldn't need to, assuming cpusets doesn't mess it up.
>
>
> I'm guessing we're agreeing that the routines update_cpu_domains()
> and related code in kernel/cpuset.c are messing things up.
At the moment they are, yes.
> I view that code as a failed intrustion of some sched domain code into
> cpusets, and apparently you view that code as a failed attempt to
> manage sched domains coming from cpusets.
>
> Oh well ... finger pointing is such fun ;).
:)
I don't know about finger pointing, but the sched-domains partitioning
works. It does what you ask of it, which is to partition the
multiprocessor balancing.
>>+ non_partitioned = top_cpuset.cpus_allowed;
>>+ update_cpu_domains_children(&top_cpuset, &non_partitioned);
>>+ partition_sched_domains(&non_partitioned);
>
>
> So ... instead of throwing the baby out, you want to replace it
> with a puppy. If one attempt to overload cpu_exclusive didn't
> work, try another.
It isn't overloading anything. Your cpusets code has assigned a
particular semantic to cpu_exclusive. It so happens that we can
take advantage of this knowledge in order to do a more efficient
implementation.
It doesn't suddenly become a flag to manage sched-domains; its
semantics are completely unchanged (modulo bugs). The cpuset
interface semantics have no connection to sched-domains.
Put it this way: you don't think your code is currently
overloading the cpuset cpus_allowed setting in order to set the
task's cpus_allowed field, do you? You shouldn't need a flag to
tell it to set that, it is all just the mechanism behind the
policy.
> I have two problems with this.
>
> 1) I haven't found any need for this, past the need to mark some
> CPUs as isolated from the scheduler balancing code, which we
> seem to be agreeing on, more or less, on another patch.
>
> Please explain why we need this or any such mechanism for user
> space to affect sched domain partitioning.
Until very recently, the multiprocessor balancing could easily be very
stupid when faced with cpus_allowed restrictions. This is somewhat
fixed, but it is still suboptimal compared to a sched-domains partition
when you are dealing with disjoint cpusets.
It is mostly SGI who seem to be running into these balancing issues, so
I would have thought this would be helpful for your customers primarily.
I don't know of anyone else using cpusets, but I'd be interested to know.
> 2) I've had better luck with the cpuset API by adding new flags
> when I needed some additional semantics, rather than overloading
> existing flags. So once we figure out what's needed and why,
> then odds are I will suggest a new flag, specific to that purpose.
There is no new semantic beyond what is already specified by
cpu_exclusive.
>
> This new flag might well logically depend on the cpu_exclusive
> setting, if that's useful. But it would probably be a separate
> flag or setting.
>
> I dislike providing explicit mechanisms via implicit side affects.
This is more like providing a specific implementation for a given
semantic.
--
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 19:22 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-19 9:23 [RFC] cpuset: remove sched domain hooks from cpusets Paul Jackson
2006-10-19 10:24 ` Nick Piggin
2006-10-19 19:03 ` Paul Jackson
2006-10-19 19:21 ` Nick Piggin [this message]
2006-10-19 19:50 ` Martin Bligh
2006-10-20 0:14 ` Paul Jackson
2006-10-20 16:03 ` Nick Piggin
2006-10-20 17:29 ` Siddha, Suresh B
2006-10-20 19:19 ` Paul Jackson
2006-10-20 19:00 ` Paul Jackson
2006-10-20 20:30 ` Dinakar Guniguntala
2006-10-20 21:41 ` Paul Jackson
2006-10-20 22:35 ` Dinakar Guniguntala
2006-10-20 23:14 ` Siddha, Suresh B
2006-10-21 5:37 ` Paul Jackson
2006-10-23 4:31 ` Siddha, Suresh B
2006-10-23 5:59 ` Paul Jackson
2006-10-21 23:05 ` Paul Jackson
2006-10-22 12:02 ` Paul Jackson
2006-10-23 3:09 ` Paul Jackson
2006-10-20 21:46 ` Paul Jackson
2006-10-21 18:23 ` Paul Menage
2006-10-21 20:55 ` Paul Jackson
2006-10-21 20:59 ` Paul Menage
2006-10-22 10:51 ` Paul Jackson
2006-10-23 5:26 ` Siddha, Suresh B
2006-10-23 5:54 ` Paul Jackson
2006-10-23 5:43 ` Siddha, Suresh B
2006-10-23 6:02 ` Nick Piggin
2006-10-23 6:16 ` Paul Jackson
2006-10-23 16:03 ` Christoph Lameter
2006-11-09 10:59 ` Paul Jackson
2006-10-23 16:01 ` Christoph Lameter
-- strict thread matches above, loose matches on Subject: below --
2006-10-30 21:26 [RFC] cpuset: Remove " Dinakar Guniguntala
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=4537D056.9080108@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=Simon.Derr@bull.net \
--cc=akpm@osdl.org \
--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