public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Paul Jackson <pj@sgi.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
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, clameter@sgi.com
Subject: Re: [RFC] cpuset: add interface to isolated cpus
Date: Fri, 20 Oct 2006 12:59:32 -0700	[thread overview]
Message-ID: <20061020125932.224d68d8.pj@sgi.com> (raw)
In-Reply-To: <453882AC.3070500@yahoo.com.au>

Nick wrote:
> I'm talking about isolcpus. What do isolcpus have to do with cpusets.c?
> You can turn off CONFIG_CPUSETS and still use isolcpusets, can't you?

The connection of isolcpus with cpusets is about as strong (or weak)
as the connection of sched domain partitioning with cpusets.

Both isolcpus and sched domain partitions are tweaks to the scheduler
domain code, to lessen the impact of load balancing, by making sched
domains smaller, or by avoiding some cpus entirely.

Cpusets is concerned with the placement of tasks on cpus and nodes.

That's more related to sched domains (and hence to isolated cpus and
sched domain partitioning) than it is, say, to the crypto code for
generating randomly random numbers from /dev/random.

But I will grant it is not a strong connection.

Apparently you were seeing the potential for a stronger connection
between cpusets and sched domain partitioning, because you thought
that the cpuset configuration naturally defined some partitions of
the systems cpus, that it would behoove the sched domain partitioning
code to take advantage of.

Unfortunately, cpusets define no such partitioning ... not system wide.

> So if you have a particular policy you need to implement, which is
> one cpus_exclusive cpuset off the root, covering half the cpus in
> the system (as a simple example)... why is it good to implement
> that with set_cpus_allowed and bad to implement it with partitions?

A cpu_exclusive cpuset does not implement the policy of partitioning
a system, such that no one else can use those cpus.  It implements
a policy of limiting the sharing of cpus, just to ones cpuset ancestors
and descendents - no distant cousins.  That makes it easier for system
admins and batch schedulers to manage the sharing of resources to meet
their needs.  They have fewer places to worry about that might be
intruding.

It would be reasonable, for example, to do the following.  One could
have a big job, that depended on scheduler load balancing, that ran
in the top cpuset, covering the entire system.  And one could have
smaller jobs, in child cpusets.  During the day one pauses the big
job and lets the smaller jobs run.  During the night, one does the
reverse.  Granted, this example is a little bit hypothetical.  Things
like this are done, but usually a couple layers further down the
cpuset hierarchy.  At the top level, one common configuration that
I am aware of puts almost the entire system into one cpuset, to be
managed by the batch scheduler, and just a handful of cpus into a
separate cpuset, to handle the classic Unix load (init, daemons, cron,
admins login.)

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.925.600.0401

  parent reply	other threads:[~2006-10-20 20:00 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-19  9:26 [RFC] cpuset: add interface to isolated cpus Paul Jackson
2006-10-19 10:17 ` Nick Piggin
2006-10-19 17:55   ` Paul Jackson
2006-10-19 18:07     ` Nick Piggin
2006-10-19 18:56       ` Paul Jackson
2006-10-19 19:03         ` Nick Piggin
2006-10-20  3:37           ` Paul Jackson
2006-10-20  8:02             ` Nick Piggin
2006-10-20 14:52               ` Nick Piggin
2006-10-20 20:03                 ` Paul Jackson
2006-10-20 19:59               ` Paul Jackson [this message]
2006-10-20 20:01               ` Paul Jackson
2006-10-20 20:59                 ` Siddha, Suresh B
2006-10-21  1:33                   ` Paul Jackson
2006-10-21  6:14                 ` Nick Piggin
2006-10-21  7:24                   ` Paul Jackson
2006-10-21 10:51                     ` Nick Piggin
2006-10-22  4:54                       ` Paul Jackson
2006-10-20 21:04 ` Dinakar Guniguntala
2006-10-23  3:18   ` Paul Jackson
2006-10-23  5:07     ` Nick Piggin
2006-10-23  5:51       ` Paul Jackson
2006-10-23  5:40         ` Siddha, Suresh B
2006-10-23  6:06           ` Paul Jackson
2006-10-23  6:07           ` Paul Jackson
2006-10-23  6:17         ` Nick Piggin
2006-10-23  6:41           ` Paul Jackson
2006-10-23  6:49             ` Nick Piggin
2006-10-23  6:48           ` Paul Jackson
2006-10-23 20:58           ` Paul Jackson
2006-10-23 19:50       ` Dinakar Guniguntala
2006-10-23 20:47         ` Paul Jackson
2006-10-24 15:44           ` Paul Jackson
2006-10-25 19:40         ` 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=20061020125932.224d68d8.pj@sgi.com \
    --to=pj@sgi.com \
    --cc=Simon.Derr@bull.net \
    --cc=akpm@osdl.org \
    --cc=clameter@sgi.com \
    --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=nickpiggin@yahoo.com.au \
    --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