From: Suresh Siddha <suresh.b.siddha@intel.com>
To: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>
Subject: Re: [PATCH v2] NOHZ: fix nohz on cpu unplug
Date: Wed, 04 Feb 2009 11:59:44 -0800 [thread overview]
Message-ID: <1233777584.16238.16.camel@vayu> (raw)
In-Reply-To: <200902040719.25593.borntraeger@de.ibm.com>
On Tue, 2009-02-03 at 22:19 -0800, Christian Borntraeger wrote:
> Am Tuesday 03 February 2009 13:28:47 schrieb Ingo Molnar:
> > > > + if (!cpu_active(cpu) {
> > >
> > > That does not compile...I used the following:
> > > if (!cpu_active(cpu)) {
> >
> > Could you please resubmit an updated patch?
>
> Suresh,
>
> can you send the updated patch? After all, its your work and we need your
> Signed-off-by anyway.
>
> You can add my
> Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
Thanks Christian for testing the fix. Ingo, appended is the updated patch. Thanks.
---
From: Suresh Siddha <suresh.b.siddha@intel.com>
Subject: sched: fix nohz load balancer on cpu offline
Christian Borntraeger reports:
> After a logical cpu offline, even on a complete idle system, there
> is one cpu with full ticks. It turns out that nohz.cpu_mask has the
> the offlined cpu still set.
>
> In select_nohz_load_balancer() we check if the system is completely
> idle to turn of load balancing. We compare cpu_online_map with
> nohz.cpu_mask. Since cpu_online_map is updated on cpu unplug,
> but nohz.cpu_mask is not, the check fails and the scheduler believes
that
> we need an "idle load balancer" even on a fully idle system. Since the
ilb
> cpu does not deactivate the timer tick this breaks NOHZ.
Fix the select_nohz_load_balancer() to not set the nohz.cpu_mask
while a cpu is going offline.
Reported-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Tested-by: Christian Borntraeger <borntraeger@de.ibm.com>
---
diff --git a/kernel/sched.c b/kernel/sched.c
index 96439a4..8a0419b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -4026,19 +4026,24 @@ int select_nohz_load_balancer(int stop_tick)
int cpu = smp_processor_id();
if (stop_tick) {
- cpumask_set_cpu(cpu, nohz.cpu_mask);
cpu_rq(cpu)->in_nohz_recently = 1;
- /*
- * If we are going offline and still the leader, give up!
- */
- if (!cpu_active(cpu) &&
- atomic_read(&nohz.load_balancer) == cpu) {
+ if (!cpu_active(cpu)) {
+ if (atomic_read(&nohz.load_balancer) != cpu)
+ return 0;
+
+ /*
+ * If we are going offline and still the leader,
+ * give up!
+ */
if (atomic_cmpxchg(&nohz.load_balancer, cpu, -1) != cpu)
BUG();
+
return 0;
}
+ cpumask_set_cpu(cpu, nohz.cpu_mask);
+
/* time for ilb owner also to sleep */
if (cpumask_weight(nohz.cpu_mask) == num_online_cpus()) {
if (atomic_read(&nohz.load_balancer) == cpu)
next prev parent reply other threads:[~2009-02-04 20:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-30 16:29 [RFC] NOHZ: fix nohz on cpu unplug Christian Borntraeger
2009-02-02 9:58 ` [PATCH/RFC] " Christian Borntraeger
2009-02-02 12:23 ` [PATCH v2] " Christian Borntraeger
2009-02-02 23:57 ` Suresh Siddha
2009-02-03 8:48 ` Christian Borntraeger
2009-02-03 12:28 ` Ingo Molnar
2009-02-04 6:19 ` Christian Borntraeger
2009-02-04 19:59 ` Suresh Siddha [this message]
2009-02-04 21:32 ` Ingo Molnar
2009-02-05 19:54 ` Mark Lord
2009-02-06 2:33 ` Suresh Siddha
2009-02-06 14:52 ` Mark Lord
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=1233777584.16238.16.camel@vayu \
--to=suresh.b.siddha@intel.com \
--cc=borntraeger@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=schwidefsky@de.ibm.com \
--cc=tglx@linutronix.de \
/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.