From: Preeti U Murthy <preeti@linux.vnet.ibm.com>
To: Vincent Guittot <vincent.guittot@linaro.org>,
"peterz@infradead.org" <peterz@infradead.org>,
Ingo Molnar <mingo@kernel.org>, Rik van Riel <riel@redhat.com>,
Morten Rasmussen <Morten.Rasmussen@arm.com>
Cc: LKML <linux-kernel@vger.kernel.org>,
Mike Galbraith <efault@gmx.de>,
Nicolas Pitre <nicolas.pitre@linaro.org>,
"daniel.lezcano@linaro.org" <daniel.lezcano@linaro.org>,
Dietmar Eggemann <dietmar.eggemann@arm.com>,
Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Subject: [QUERY] Confusing usage of rq->nr_running in load balancing
Date: Wed, 03 Sep 2014 17:51:45 +0530 [thread overview]
Message-ID: <540707D9.4040208@linux.vnet.ibm.com> (raw)
Hi,
There are places in kernel/sched/fair.c in the load balancing part where
rq->nr_running is used as against cfs_rq->nr_running. At least I could
not make out why the former was used in the following scenarios.
It looks to me that it can very well lead to incorrect load balancing.
Also I did not pay attention to the numa balancing part of the code
while skimming through this file to catch this scenario. There are a
couple of places there too which need to be scrutinized.
1. load_balance(): The check (busiest->nr_running > 1)
The load balancing would be futile if there are tasks of other
scheduling classes, wouldn't it?
2. active_load_balance_cpu_stop(): A similar check and a similar
consequence as 1 here.
3. nohz_kick_needed() : We check for more than one task on the runqueue
and hence trigger load balancing even if there are rt-tasks.
4. cpu_avg_load_per_task(): This stands out among the rest as an
incorrect usage of rq->nr_running in place of cfs_rq->nr_running. We
divide the load associated with the cfs_rq by the number of tasks on the
rq. This will make the cfs_rq load look smaller.
5. task_hot() : I am not too sure about the consequences of using
rq->nr_running here.
6. update_sg_lb_stats(): sgs->sum_nr_running is the sum of
rq->nr_running and propogates thus throughout the load balancing code path.
7. sg_capacity_factor(): Returns the capacity factor measured against
the cpu capacity available to fair tasks. We then compare this with the
rq->nr_running in update_sg_lb_stats(), update_sd_pick_busiest() and
calculate_imbalance()
8. find_busiest_queue(): This anomaly shows up when we filter against
rq->nr_running == 1 and imbalance cannot be taken care of by the
existing task on this rq.
Did I miss something or is it true that the usage of rq->nr_running in
the above places is incorrect?
Thanks
Regards
Preeti U Murthy
next reply other threads:[~2014-09-03 12:22 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-03 12:21 Preeti U Murthy [this message]
2014-09-03 15:30 ` [QUERY] Confusing usage of rq->nr_running in load balancing Peter Zijlstra
2014-09-03 16:58 ` Vincent Guittot
2014-09-05 12:19 ` Preeti U Murthy
2014-09-05 12:27 ` Vincent Guittot
2014-09-10 8:21 ` Preeti U Murthy
2014-09-15 4:16 ` Preeti U Murthy
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=540707D9.4040208@linux.vnet.ibm.com \
--to=preeti@linux.vnet.ibm.com \
--cc=Morten.Rasmussen@arm.com \
--cc=daniel.lezcano@linaro.org \
--cc=dietmar.eggemann@arm.com \
--cc=efault@gmx.de \
--cc=kamalesh@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=nicolas.pitre@linaro.org \
--cc=peterz@infradead.org \
--cc=riel@redhat.com \
--cc=srikar@linux.vnet.ibm.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 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.