Re: [PATCH 07/41] cpuset: Set up interface for nohz flag

From: Mike Galbraith
Date: Wed May 09 2012 - 00:21:48 EST

On Tue, 2012-05-08 at 15:45 -0500, Christoph Lameter wrote:
> On Tue, 8 May 2012, Mike Galbraith wrote:
> > On Tue, 2012-05-08 at 18:16 +0200, Peter Zijlstra wrote:
> > > On Tue, 2012-05-08 at 10:57 -0500, Christoph Lameter wrote:
> >
> > > isolcpus is a very limited hack that adds more pain that its worth. Its
> > > yet another mask to check and its functionality is completely available
> > > through cpusets.
> >
> > Agreed.
> How would that work? By creating cpusets that only have a single cpu in
> them?

No, just turn load balancing off for exclusive set, domains go poof.

> > > You cannot cree multi-cpu partitions using isolcpus, you cannot
> > > dynamically reconfigure it.
> >
> > Big plus for cpusets.
> Why would you want to do anything like it? cpusets are confusing. You can
> have a cpu be part of multiple cpusets. Which nohz setting applies for a
> particular cpu then? If any of the cpusets have nohz set then it applies
> to the cpu? And thus someone in a cpuset that does not has nohz set will
> find that a cpu will have nohz functionality?

nohz has to be at least an exclusive set property.

> Its not a good match for this. You would want a per cpu attribute for
> nohz.

Or per cpuset, which can be the same thing as per cpu if you want.

> > > And on the scheduler side cpusets doesn't add runtime overhead to normal
> > > things, only sched_setaffinity() and a few other rare operations get
> > > slightly more expensive. And it allows to reduce runtime overhead by
> > > making the load-balancer domains smaller.
> >
> > Very big deal if you have a load that doesn't do all the performance 'i'
> > dotting and 't' crossing it maybe could have, but ends up on a big box.
> isolcpus are not part of load balancer domains.

Yup, so if you have an application with an RT component, somewhat
sensitive, needs isolation from rest of a big box, but app also has
SCHED_OTHER components. isolcpus is a pain, everything has to be static
and nailed to the floor. Load just works when plugged into a cpuset.


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at