From: tip-bot for Thomas Gleixner <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, hpa@zytor.com, mingo@kernel.org,
peterz@infradead.org, bigeasy@linutronix.de, tglx@linutronix.de
Subject: [tip:sched/core] sched: Init idle->on_rq in init_idle()
Date: Sat, 22 Feb 2014 10:01:54 -0800 [thread overview]
Message-ID: <tip-77177856e3bf39d435b3ae4bfd164ca3c8cd4577@git.kernel.org> (raw)
In-Reply-To: <1391803122-4425-2-git-send-email-bigeasy@linutronix.de>
Commit-ID: 77177856e3bf39d435b3ae4bfd164ca3c8cd4577
Gitweb: http://git.kernel.org/tip/77177856e3bf39d435b3ae4bfd164ca3c8cd4577
Author: Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Fri, 7 Feb 2014 20:58:37 +0100
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 22 Feb 2014 18:07:36 +0100
sched: Init idle->on_rq in init_idle()
We stumbled in RT over a SMP bringup issue on ARM where the
idle->on_rq == 0 was causing try_to_wakeup() on the other cpu to run
into nada land.
After adding that idle->on_rq = 1; I was able to find the root cause
of the lockup: the idle task on the newly woken up cpu was fiddling
with a sleeping spinlock, which is a nono.
I kept the init of idle->on_rq to keep the state consistent and to
avoid another long lasting debug session.
As a side note, the whole debug mess could have been avoided if
might_sleep() would have yelled when called from the idle task. That's
fixed with patch 2/6 - and that one actually has a changelog :)
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1391803122-4425-2-git-send-email-bigeasy@linutronix.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
kernel/sched/core.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 49db434..06da865 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4443,6 +4443,7 @@ void init_idle(struct task_struct *idle, int cpu)
rcu_read_unlock();
rq->curr = rq->idle = idle;
+ idle->on_rq = 1;
#if defined(CONFIG_SMP)
idle->on_cpu = 1;
#endif
next prev parent reply other threads:[~2014-02-22 18:02 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-07 19:58 A pile of sched patches Sebastian Andrzej Siewior
2014-02-07 19:58 ` [PATCH 1/6] sched: Init idle->on_rq in init_idle() Sebastian Andrzej Siewior
2014-02-07 21:09 ` Peter Zijlstra
2014-02-11 9:17 ` [PATCH 1/6 v2] " Sebastian Andrzej Siewior
2014-02-11 9:21 ` Peter Zijlstra
2014-02-11 15:34 ` Thomas Gleixner
2014-02-11 15:51 ` Peter Zijlstra
2014-02-21 21:31 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:01 ` tip-bot for Thomas Gleixner [this message]
2014-02-07 19:58 ` [PATCH 2/6] sched: Check for idle task in might_sleep() Sebastian Andrzej Siewior
2014-02-21 21:31 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:02 ` tip-bot for Thomas Gleixner
2014-02-07 19:58 ` [PATCH 3/6] sched: Better debug output for might sleep Sebastian Andrzej Siewior
2014-02-21 21:31 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:02 ` [tip:sched/core] sched: Add better debug output for might_sleep() tip-bot for Thomas Gleixner
2014-02-07 19:58 ` [PATCH 4/6] sched: Adjust sched_reset_on_fork when nothing else changes Sebastian Andrzej Siewior
2014-02-21 21:32 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:02 ` [tip:sched/core] sched: Adjust p-> " tip-bot for Thomas Gleixner
2014-02-07 19:58 ` [PATCH 5/6] sched: Queue RT tasks to head when prio drops Sebastian Andrzej Siewior
2014-02-21 21:32 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:02 ` tip-bot for Thomas Gleixner
2014-02-07 19:58 ` [PATCH 6/6] sched: Consider pi boosting in setscheduler Sebastian Andrzej Siewior
2014-02-21 21:32 ` [tip:sched/core] " tip-bot for Thomas Gleixner
2014-02-22 18:02 ` [tip:sched/core] sched: Consider pi boosting in setscheduler() tip-bot for Thomas Gleixner
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=tip-77177856e3bf39d435b3ae4bfd164ca3c8cd4577@git.kernel.org \
--to=tipbot@zytor.com \
--cc=bigeasy@linutronix.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--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.