From: Preeti U Murthy <preeti@linux.vnet.ibm.com>
To: Paul Turner <pjt@google.com>
Cc: Alex Shi <alex.shi@intel.com>,
Peter Zijlstra <peterz@infradead.org>,
torvalds@linux-foundation.org, mingo@redhat.com,
tglx@linutronix.de, akpm@linux-foundation.org,
arjan@linux.intel.com, bp@alien8.de, namhyung@kernel.org,
efault@gmx.de, vincent.guittot@linaro.org,
gregkh@linuxfoundation.org, viresh.kumar@linaro.org,
linux-kernel@vger.kernel.org
Subject: Re: [patch v4 08/18] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking"
Date: Thu, 14 Feb 2013 08:37:47 +0530 [thread overview]
Message-ID: <511C5503.5010103@linux.vnet.ibm.com> (raw)
In-Reply-To: <CAPM31RLi+e=2kmwxDOewe=+LHrHGiVTuo-+3WeAFEmsWmi1fnw@mail.gmail.com>
Hi everyone,
On 02/13/2013 09:15 PM, Paul Turner wrote:
> On Wed, Feb 13, 2013 at 7:23 AM, Alex Shi <alex.shi@intel.com> wrote:
>> On 02/12/2013 06:27 PM, Peter Zijlstra wrote:
>>> On Thu, 2013-01-24 at 11:06 +0800, Alex Shi wrote:
>>>> Remove CONFIG_FAIR_GROUP_SCHED that covers the runnable info, then
>>>> we can use runnable load variables.
>>>>
>>> It would be nice if we could quantify the performance hit of doing so.
>>> Haven't yet looked at later patches to see if we remove anything to
>>> off-set this.
>>>
>>
>> In our rough testing, no much clear performance changes.
>>
>
> I'd personally like this to go with a series that actually does
> something with it.
>
> There's been a few proposals floating around on _how_ to do this; but
> the challenge is in getting it stable enough that all of the wake-up
> balancing does not totally perforate your stability gains into the
> noise. select_idle_sibling really is your nemesis here.
>
> It's a small enough patch that it can go at the head of any such
> series (and indeed; it was originally structured to make such a patch
> rather explicit.)
>
>> --
>> Thanks
>> Alex
>
Paul,what exactly do you mean by select_idle_sibling() is our nemesis
here? What we observed through our experiments was that:
1.With the per entity load tracking(runnable_load_avg) in load
balancing,the load is distributed appropriately across the cpus.
2.However when a task sleeps and wakes up,select_idle_sibling() searches
for the idlest group top to bottom.If a suitable candidate is not
found,it wakes up the task on the prev_cpu/waker_cpu.This would increase
the runqueue size and load of prev_cpu/waker_cpu respectively.
3.The load balancer would then come to the rescue and redistribute the load.
As a consequence,
*The primary observation was that there is no performance degradation
with the integration of per entity load tracking into the load balancer
but there was a good increase in the number of migrations*. This as I
see it, is due to the point2 and point3 above.Is this what you call as
the nemesis? OR
select_idle_sibling() does a top to bottom search of the chosen domain
for an idlest group and is very likely to spread the waking task to a
far off group,in case of underutilized systems.This would prove costly
for the software buddies in finding each other due to the time taken for
the search and the possible spreading of the software buddy tasks.Is
this what you call nemesis?
Another approach to remove the above two nemesis,if they are so,would be
to use blocked_load+runnable_load for balancing.But when waking up a
task,use select_idle_sibling() only to search the L2 cache domains for
an idlest group.If unsuccessful,return the prev_cpu which has already
accounted for the task in the blocked_load,hence this move would not
increase its load.Would you recommend going in this direction?
Thank you
Regards
Preeti U Murthy
next prev parent reply other threads:[~2013-02-14 3:09 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-24 3:06 [patch v4 0/18] sched: simplified fork, release load avg and power awareness scheduling Alex Shi
2013-01-24 3:06 ` [patch v4 01/18] sched: set SD_PREFER_SIBLING on MC domain to reduce a domain level Alex Shi
2013-02-12 10:11 ` Peter Zijlstra
2013-02-13 13:22 ` Alex Shi
2013-02-15 12:38 ` Peter Zijlstra
2013-02-16 5:16 ` Alex Shi
2013-02-13 14:17 ` Alex Shi
2013-01-24 3:06 ` [patch v4 02/18] sched: select_task_rq_fair clean up Alex Shi
2013-02-12 10:14 ` Peter Zijlstra
2013-02-13 14:44 ` Alex Shi
2013-01-24 3:06 ` [patch v4 03/18] sched: fix find_idlest_group mess logical Alex Shi
2013-02-12 10:16 ` Peter Zijlstra
2013-02-13 15:07 ` Alex Shi
2013-01-24 3:06 ` [patch v4 04/18] sched: don't need go to smaller sched domain Alex Shi
2013-01-24 3:06 ` [patch v4 05/18] sched: quicker balancing on fork/exec/wake Alex Shi
2013-02-12 10:22 ` Peter Zijlstra
2013-02-14 3:13 ` Alex Shi
2013-02-14 8:12 ` Preeti U Murthy
2013-02-14 14:08 ` Alex Shi
2013-02-15 13:00 ` Peter Zijlstra
2013-01-24 3:06 ` [patch v4 06/18] sched: give initial value for runnable avg of sched entities Alex Shi
2013-02-12 10:23 ` Peter Zijlstra
2013-01-24 3:06 ` [patch v4 07/18] sched: set initial load avg of new forked task Alex Shi
2013-02-12 10:26 ` Peter Zijlstra
2013-02-13 15:14 ` Alex Shi
2013-02-13 15:41 ` Paul Turner
2013-02-14 13:07 ` Alex Shi
2013-02-19 11:34 ` Paul Turner
2013-02-20 4:18 ` Preeti U Murthy
2013-02-20 5:13 ` Alex Shi
2013-01-24 3:06 ` [patch v4 08/18] Revert "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking" Alex Shi
2013-02-12 10:27 ` Peter Zijlstra
2013-02-13 15:23 ` Alex Shi
2013-02-13 15:45 ` Paul Turner
2013-02-14 3:07 ` Preeti U Murthy [this message]
2013-01-24 3:06 ` [patch v4 09/18] sched: add sched_policies in kernel Alex Shi
2013-02-12 10:36 ` Peter Zijlstra
2013-02-13 15:41 ` Alex Shi
2013-01-24 3:06 ` [patch v4 10/18] sched: add sysfs interface for sched_policy selection Alex Shi
2013-01-24 3:06 ` [patch v4 11/18] sched: log the cpu utilization at rq Alex Shi
2013-02-12 10:39 ` Peter Zijlstra
2013-02-14 3:10 ` Alex Shi
2013-01-24 3:06 ` [patch v4 12/18] sched: add power aware scheduling in fork/exec/wake Alex Shi
2013-01-24 3:06 ` [patch v4 13/18] sched: packing small tasks in wake/exec balancing Alex Shi
2013-01-24 3:06 ` [patch v4 14/18] sched: add power/performance balance allowed flag Alex Shi
2013-01-24 3:06 ` [patch v4 15/18] sched: pull all tasks from source group Alex Shi
2013-01-24 3:06 ` [patch v4 16/18] sched: don't care if the local group has capacity Alex Shi
2013-01-24 3:06 ` [patch v4 17/18] sched: power aware load balance, Alex Shi
2013-01-24 3:07 ` [patch v4 18/18] sched: lazy power balance Alex Shi
2013-01-24 9:44 ` [patch v4 0/18] sched: simplified fork, release load avg and power awareness scheduling Borislav Petkov
2013-01-24 15:07 ` Alex Shi
2013-01-27 2:41 ` Alex Shi
2013-01-27 4:36 ` Mike Galbraith
2013-01-27 10:35 ` Borislav Petkov
2013-01-27 13:25 ` Alex Shi
2013-01-27 15:51 ` Mike Galbraith
2013-01-28 5:17 ` Mike Galbraith
2013-01-28 5:51 ` Alex Shi
2013-01-28 6:15 ` Mike Galbraith
2013-01-28 6:42 ` Mike Galbraith
2013-01-28 7:20 ` Mike Galbraith
2013-01-29 1:17 ` Alex Shi
2013-01-28 9:55 ` Borislav Petkov
2013-01-28 10:44 ` Mike Galbraith
2013-01-28 11:29 ` Borislav Petkov
2013-01-28 11:32 ` Mike Galbraith
2013-01-28 11:40 ` Mike Galbraith
2013-01-28 15:22 ` Borislav Petkov
2013-01-28 15:55 ` Mike Galbraith
2013-01-29 1:38 ` Alex Shi
2013-01-29 1:32 ` Alex Shi
2013-01-29 1:36 ` Alex Shi
2013-01-28 15:47 ` Mike Galbraith
2013-01-29 1:45 ` Alex Shi
2013-01-29 4:03 ` Mike Galbraith
2013-01-29 2:27 ` Alex Shi
2013-01-27 10:40 ` Borislav Petkov
2013-01-27 14:03 ` Alex Shi
2013-01-28 5:19 ` Alex Shi
2013-01-28 6:49 ` Mike Galbraith
2013-01-28 7:17 ` Alex Shi
2013-01-28 7:33 ` Mike Galbraith
2013-01-29 6:02 ` Alex Shi
2013-01-28 1:28 ` Alex Shi
2013-02-04 1:35 ` Alex Shi
2013-02-04 11:09 ` Ingo Molnar
2013-02-05 2:26 ` Alex Shi
2013-02-06 5:08 ` Alex Shi
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=511C5503.5010103@linux.vnet.ibm.com \
--to=preeti@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=alex.shi@intel.com \
--cc=arjan@linux.intel.com \
--cc=bp@alien8.de \
--cc=efault@gmx.de \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=vincent.guittot@linaro.org \
--cc=viresh.kumar@linaro.org \
/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;
as well as URLs for NNTP newsgroup(s).