Re: [PATCH] sched: select 'idle' cfs_rq per task-group to prevent tg-internal imbalance

From: Rik van Riel
Date: Fri Jul 11 2014 - 12:12:50 EST

Hash: SHA1

On 07/02/2014 11:51 PM, Mike Galbraith wrote:
> On Wed, 2014-07-02 at 10:47 -0400, Rik van Riel wrote:
>> On 07/01/2014 04:38 AM, Michael wang wrote:
>>> On 07/01/2014 04:20 PM, Peter Zijlstra wrote: [snip]
>>>>> Just wondering could we make this another scheduler
>>>>> feature?
>>>> No; sched_feat() is for debugging, BIG CLUE: its guarded by
>>>> CONFIG_SCHED_DEBUG, anybody using it in production or
>>>> anywhere else is broken.
>>>> If people are using it, I should remove or at least randomize
>>>> the interface.
>>> Fair enough... but is there any suggestions on how to handle
>>> this issue?
>>> Currently when dbench running with stress, it could only gain
>>> one CPU, and cpu-cgroup cpu.shares is meaningless, is there any
>>> good methods to address that?
>> select_idle_sibling will iterate over all of the CPUs in an LLC
>> domain if there is no idle cpu in the domain.
>> I suspect it would not take much extra code to track down the
>> idlest CPU in the LLC domain, and make sure to schedule tasks
>> there, in case no completely idle CPU was found.
>> Are there any major problems with that thinking?
> That's full wake balance.. if that was cheap,
> select_idle_sibling() would not exist.

Full wake balance iterates over all the groups in the system,
select_idle_sibling only over one LLC domain.

If no CPU in the LLC domain is idle, select_idle_sibling will
iterate over all of them. During this iteration, which the
code already does, it should be possible to identify the least
loaded of the CPUs and pick that one.

- --
All rights reversed
Version: GnuPG v1
Comment: Using GnuPG with Thunderbird -

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