LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Michal Piotrowski <michal.k.k.piotrowski@gmail.com>
Cc: Michal Piotrowski <michal.k.k.piotrowski@googlemail.com>,
	tglx@linutronix.de, LKML <linux-kernel@vger.kernel.org>
Subject: Re: 2.6.20-git15 BUG: soft lockup detected on CPU#0! - timers?
Date: Fri, 23 Feb 2007 07:08:02 +0100	[thread overview]
Message-ID: <20070223060802.GA8562@elte.hu> (raw)
In-Reply-To: <45DD756D.3040006@googlemail.com>


Michal,

* Michal Piotrowski <michal.k.k.piotrowski@gmail.com> wrote:

> Here is more
> 
> hardirqs last  enabled at (30787): [<c0104249>] syscall_exit_work+0x11/0x26
> hardirqs last disabled at (30788): [<c0103fc9>] ret_from_exception+0x9/0xc
> softirqs last  enabled at (30202): [<c01265df>] __do_softirq+0xe4/0xea
> softirqs last disabled at (30193): [<c0106a75>] do_softirq+0x64/0xd1

could you please try the patch below? This is pretty much the only 
condition under which we can silently 'leak' pending softirqs, and 
trigger the new warning: if something does cond_resched_softirq() in 
non-runnable state. (which is a no-no, but nothing enforced this, so it 
could in theory happen.) So the question is, with this patch applied, do 
you get these new warnings from sched.c?

	Ingo

-------------------------->
Subject: [patch] add warning to cond_resched_softirq()
From: Ingo Molnar <mingo@elte.hu>

make sure that cond_resched_softirq() is always called with a runnable 
task - so that we do not leave softirq work pending indefinitely.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 kernel/sched.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux/kernel/sched.c
===================================================================
--- linux.orig/kernel/sched.c
+++ linux/kernel/sched.c
@@ -4689,6 +4689,7 @@ int __sched cond_resched_softirq(void)
 	BUG_ON(!in_softirq());
 
 	if (need_resched() && system_state == SYSTEM_RUNNING) {
+		WARN_ON(current->state != TASK_RUNNING);
 		raw_local_irq_disable();
 		_local_bh_enable();
 		raw_local_irq_enable();

  reply	other threads:[~2007-02-23  6:13 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-20 18:54 Michal Piotrowski
2007-02-20 21:56 ` Thomas Gleixner
2007-02-20 22:37   ` Michal Piotrowski
2007-02-21 15:33     ` Thomas Gleixner
2007-02-21 15:38       ` Michal Piotrowski
2007-02-21 20:00         ` Thomas Gleixner
2007-02-22  1:47           ` Michal Piotrowski
2007-02-22 10:50             ` Michal Piotrowski
2007-02-23  6:08               ` Ingo Molnar [this message]
2007-02-23  7:32                 ` Mike Galbraith
2007-02-23 10:10                 ` Ingo Molnar
2007-02-24 22:45                 ` Michal Piotrowski
2007-02-25  9:53                   ` Thomas Gleixner
2007-02-26 13:01                     ` Michal Piotrowski
2007-02-26 13:25                       ` [patch] sched: fix SMT scheduler bug Ingo Molnar

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=20070223060802.GA8562@elte.hu \
    --to=mingo@elte.hu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.k.k.piotrowski@gmail.com \
    --cc=michal.k.k.piotrowski@googlemail.com \
    --cc=tglx@linutronix.de \
    --subject='Re: 2.6.20-git15 BUG: soft lockup detected on CPU#0'\!' - timers?' \
    /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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).