All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Thomas Gleixner <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, mingo@redhat.com, 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: Fri, 21 Feb 2014 13:31:28 -0800	[thread overview]
Message-ID: <tip-e037fef5fb7d2c887916576c1a288c821b6268f4@git.kernel.org> (raw)
In-Reply-To: <1391803122-4425-2-git-send-email-bigeasy@linutronix.de>

Commit-ID:  e037fef5fb7d2c887916576c1a288c821b6268f4
Gitweb:     http://git.kernel.org/tip/e037fef5fb7d2c887916576c1a288c821b6268f4
Author:     Thomas Gleixner <tglx@linutronix.de>
AuthorDate: Fri, 7 Feb 2014 20:58:37 +0100
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Fri, 21 Feb 2014 21:43:18 +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 :)

Cc: Ingo Molnar <mingo@redhat.com>
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: Thomas Gleixner <tglx@linutronix.de>
---
 kernel/sched/core.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 4c8aaf0..86e0558 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -4451,6 +4451,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

  parent reply	other threads:[~2014-02-21 21:32 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-bot for Thomas Gleixner [this message]
2014-02-22 18:01   ` [tip:sched/core] " tip-bot for Thomas Gleixner
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-e037fef5fb7d2c887916576c1a288c821b6268f4@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=mingo@redhat.com \
    --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.