From: Alex Shi <alex.shi@intel.com>
To: Mike Galbraith <bitbucket@online.de>
Cc: Alex Shi <lkml.alex@gmail.com>, Ingo Molnar <mingo@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Paul Turner <pjt@google.com>, lkml <linux-kernel@vger.kernel.org>,
Vincent Guittot <vincent.guittot@linaro.org>,
Preeti U Murthy <preeti@linux.vnet.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arjan van de Ven <arjan@linux.intel.com>,
Tejun Heo <tj@kernel.org>
Subject: Re: weakness of runnable load tracking?
Date: Thu, 06 Dec 2012 23:13:01 +0800 [thread overview]
Message-ID: <50C0B5FD.6000200@intel.com> (raw)
In-Reply-To: <1354785141.4593.109.camel@marge.simpson.net>
On 12/06/2012 05:12 PM, Mike Galbraith wrote:
> On Thu, 2012-12-06 at 16:06 +0800, Alex Shi wrote:
>>>>
>>>> Hi Paul & Ingo:
>>>>
>>>> In a short word of this issue: burst forking/waking tasks have no time
>>>> accumulate the load contribute, their runnable load are taken as zero.
>>>> that make select_task_rq do a wrong decision on which group is idlest.
>>>
>>> As you pointed out above, new tasks can (and imho should) be born with
>>> full weight. Tasks _may_ become thin, but they're all born hungry.
>>
>> Thanks for comments. I think so. :)
>>>
>>>> There is still 3 kinds of solution is helpful for this issue.
>>>>
>>>> a, set a unzero minimum value for the long time sleeping task. but it
>>>> seems unfair for other tasks these just sleep a short while.
>>>>
>>>> b, just use runnable load contrib in load balance. Still using
>>>> nr_running to judge idlest group in select_task_rq_fair. but that may
>>>> cause a bit more migrations in future load balance.
>>>>
>>>> c, consider both runnable load and nr_running in the group: like in the
>>>> searching domain, the nr_running number increased a certain number, like
>>>> double of the domain span, in a certain time. we will think it's a burst
>>>> forking/waking happened, then just count the nr_running as the idlest
>>>> group criteria.
>>>>
>>>> IMHO, I like the 3rd one a bit more. as to the certain time to judge if
>>>> a burst happened, since we will calculate the runnable avg at very tick,
>>>> so if increased nr_running is beyond sd->span_weight in 2 ticks, means
>>>> burst happening. What's your opinion of this?
>>>>
>>>> Any comments are appreciated!
>>>
>>> IMHO, for fork and bursty wake balancing, the only thing meaningful is
>>> the here and now state of runqueues tasks are being dumped into.
>>>
>>> Just because tasks are historically short running, you don't necessarily
>>> want to take a gaggle and wedge them into a too small group just to even
>>> out load averages. If there was a hole available that you passed up by
>>> using average load, you lose utilization. I can see how this load
>>> tracking stuff can average out to a win on a ~heavily loaded box, but
>>> bursty stuff I don't see how it can do anything but harm, so imho, the
>>> user should choose which is best for his box, instantaneous or history.
>>
>> Do you mean the system administrator need to do this choice?
>
> That's my gut feeling just from pondering potential pitfalls.
>
>> It's may a hard decision. :)
>
> Yup, very hard.
>
>> Any suggestions of decision basis?
>
> Same as most buttons.. poke it and <cringe> see what happens :)
:D
>
>>> WRT burst detection: any window you define can be longer than the burst.
>>
>> Maybe we can define 2 waking on same cpu in 1 tick is a burst happened,
>> and if the cpu had taken a waking task. we'd better skip this cpu. :)
>> Anyway, the hard point is we can not predict future.
>
> No matter what the metric, you'll be reacting after the fact.
>
> Somebody needs to code up that darn omniscience algorithm. In a pinch,
> a simple undo the past will suffice :)
Yes. I see.
>
> -Mike
>
--
Thanks
Alex
next prev parent reply other threads:[~2012-12-06 15:13 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-05 15:19 weakness of runnable load tracking? Alex Shi
2012-12-06 3:13 ` Alex Shi
2012-12-06 5:57 ` Mike Galbraith
2012-12-06 8:06 ` Alex Shi
2012-12-06 9:12 ` Mike Galbraith
2012-12-06 15:13 ` Alex Shi [this message]
2012-12-06 6:52 ` Preeti U Murthy
2012-12-06 8:14 ` Alex Shi
2012-12-06 10:45 ` Paul Turner
2012-12-06 15:10 ` Alex Shi
2012-12-08 12:20 ` Alex Shi
2012-12-07 2:14 ` 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=50C0B5FD.6000200@intel.com \
--to=alex.shi@intel.com \
--cc=akpm@linux-foundation.org \
--cc=arjan@linux.intel.com \
--cc=bitbucket@online.de \
--cc=linux-kernel@vger.kernel.org \
--cc=lkml.alex@gmail.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=pjt@google.com \
--cc=preeti@linux.vnet.ibm.com \
--cc=tj@kernel.org \
--cc=vincent.guittot@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.