From: Sai <sgurrappadi@nvidia.com>
To: <linux-kernel@vger.kernel.org>
Cc: <peterz@infradead.org>, <mingo@redhat.com>
Subject: [RFC PATCH] sched: Update cpu_load before nohz ilb
Date: Thu, 20 Feb 2014 14:06:58 -0800 [thread overview]
Message-ID: <53067C82.4080807@nvidia.com> (raw)
Update the cpu_load of the kickee in run_rebalance_domains before
calling rebalance_domains if the kickee is in nohz_idle. This avoids
using stale cpu_load for the subsequent load_balance.
cpu_load in the nohz path is updated on tick_nohz_idle_exit or if a
kickee performances balancing on the behalf of tickless cpus in
nohz_idle_balance. However, the kickee's cpu_load is never updated if it
doesn't exit nohz_idle. This causes stale cpu_load to be used which
causes incorrect load balancing decisions.
Tested on k3.10.
Signed-off-by: Sai Gurrappadi <sgurrappadi@nvidia.com>
---
kernel/sched/fair.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 860a152..1d4eb4a 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -7140,6 +7140,13 @@ static void run_rebalance_domains(struct
softirq_action *h)
enum cpu_idle_type idle = this_rq->idle_balance ?
CPU_IDLE : CPU_NOT_IDLE;
+ if (test_bit(NOHZ_BALANCE_KICK, nohz_flags(this_rq->cpu))) {
+ raw_spin_lock_irq(&this_rq->lock);
+ update_rq_clock(this_rq);
+ update_idle_cpu_load(this_rq);
+ raw_spin_unlock_irq(&this_rq->lock);
+ }
+
rebalance_domains(this_rq, idle);
/*
--
1.8.1.5
next reply other threads:[~2014-02-20 22:09 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-20 22:06 Sai [this message]
2014-02-21 20:44 ` [RFC PATCH] sched: Update cpu_load before nohz ilb Sai
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=53067C82.4080807@nvidia.com \
--to=sgurrappadi@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.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.