From: Peter Zijlstra <peterz@infradead.org>
To: Rik van Riel <riel@redhat.com>
Cc: Vincent Guittot <vincent.guittot@linaro.org>,
linux-kernel <linux-kernel@vger.kernel.org>,
Michael Neuling <mikey@neuling.org>,
Ingo Molnar <mingo@kernel.org>,
jhladky@redhat.com, ktkhai@parallels.com,
tim.c.chen@linux.intel.com,
Nicolas Pitre <nicolas.pitre@linaro.org>
Subject: Re: [PATCH 1/2] sched: fix and clean up calculate_imbalance
Date: Tue, 29 Jul 2014 17:49:56 +0200 [thread overview]
Message-ID: <20140729154956.GJ3935@laptop> (raw)
In-Reply-To: <53D7BAA5.8080404@redhat.com>
On Tue, Jul 29, 2014 at 11:15:49AM -0400, Rik van Riel wrote:
> > Right, so we want that code for overloaded -> overloaded migrations
> > such as not to cause idle cpus in an attempt to balance things.
> > Idle cpus are worse than imbalance.
> >
> > But in case of overloaded/imb -> !overloaded migrations we can
> > allow it, and in fact want to allow it in order to balance idle
> > cpus.
>
> In case the destination is over the average load, or the source is under
> the average load, fix_small_imbalance() determines env->imbalance.
>
> The "load_above_capacity" calculation is only reached when busiest is
> busier than average, and the destination is under the average load.
> In that case, env->imbalance ends up as the minimum of busiest - avg
> and avg - target.
>
> Is there any case where limiting it further to "load - capacity" from
> the busiest domain makes a difference?
sadly yes; suppose 8 cpus in 2 groups and 9 tasks, 8 tasks of weight 10,
1 of 1024. The local group will have 5 tasks of 10, the busiest will
have the remaining 4.
The sd avg is 138, local avg is 12, busiest avg is 263.
This gives: busiest-avg = 122, avg - local = 110
So an imbalance of 110.
Without limiting it further, we would migrate all 3 10 tasks over to
local and run 3 cpus idle.
Now running all 8 10 tasks on a single cpu and the 1 1024 task on
another and keeping 6 cpus idle is the 'fairest' solution, but that's
not the only goal, we also try and be work-conserving, iow. keep as many
cpus busy as possible.
next prev parent reply other threads:[~2014-07-29 15:50 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 18:16 [PATCH 0/2] load balancing fixes riel
2014-07-28 18:16 ` [PATCH 1/2] sched: fix and clean up calculate_imbalance riel
2014-07-29 9:04 ` Vincent Guittot
2014-07-29 14:53 ` Rik van Riel
2014-07-29 15:31 ` Vincent Guittot
2014-07-29 15:39 ` Rik van Riel
2014-07-29 14:59 ` Peter Zijlstra
2014-07-29 15:15 ` Rik van Riel
2014-07-29 15:49 ` Peter Zijlstra [this message]
2014-07-29 17:04 ` Rik van Riel
2014-07-29 15:27 ` Peter Zijlstra
2014-07-30 9:32 ` Vincent Guittot
2014-07-30 10:13 ` Peter Zijlstra
2014-08-12 14:52 ` [tip:sched/core] sched/fair: Allow calculate_imbalance() to move idle cpus tip-bot for Peter Zijlstra
2014-07-29 14:49 ` [PATCH 1/2] sched: fix and clean up calculate_imbalance Peter Zijlstra
2014-07-29 14:53 ` Peter Zijlstra
2014-07-29 15:26 ` Peter Zijlstra
2014-08-12 14:52 ` [tip:sched/core] sched/fair: Make calculate_imbalance() independent tip-bot for Peter Zijlstra
2014-07-28 18:16 ` [PATCH 2/2] sched: make update_sd_pick_busiest return true on a busier sd riel
2014-07-29 15:27 ` Peter Zijlstra
2014-08-12 14:52 ` [tip:sched/core] sched/fair: Make update_sd_pick_busiest() return 'true' " tip-bot for Rik van Riel
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=20140729154956.GJ3935@laptop \
--to=peterz@infradead.org \
--cc=jhladky@redhat.com \
--cc=ktkhai@parallels.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mikey@neuling.org \
--cc=mingo@kernel.org \
--cc=nicolas.pitre@linaro.org \
--cc=riel@redhat.com \
--cc=tim.c.chen@linux.intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox