Messages in this thread | | | Date | Mon, 28 May 2018 14:45:08 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH v8 3/6] cpuset: Add cpuset.sched.load_balance flag to v2 |
| |
On Thu, May 24, 2018 at 02:55:25PM -0400, Waiman Long wrote: > On 05/24/2018 11:43 AM, Peter Zijlstra wrote:
> > I'm confused... why exactly do we have both domain and load_balance ? > > The domain is for partitioning the CPUs only. It doesn't change the load > balancing state. So the load_balance flag is still need to turn on and > off load balancing.
OK, so we have to two boolean flags, giving 4 possible states. Lets just go through them one by on:
A) domain:0 load_balance:0 -- we have no exclusive domain, but have load-balancing disabled across them. AFAICT this should be an invalid state.
B) domain:0 load_balance:1 -- we have no exclusive domain, but have load-balancing enabled. AFAICT this is the default state and is a no-op.
C) domain:1 load_balance:0 -- we have an exclusive domain, and have load-balancing disabled across it. This is, AFAICT, identical to having a bunch of sub/sibling groups each with a single CPU domain.
D) domain:1 load_balance:1 -- we have an exclusive domain, and have load-balancing enabled. This is a partition.
Now, I think I've overlooked the fact that load_balance==1 only really means something when the parent's load_balance==0, but I'm not sure that really changes anything.
So, afaict, the above only have two useful states: B and D. Which again raises the question, why two knobs? What useful configurations does it allow?
| |