public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Valdis.Kletnieks@vt.edu, jkosina@suse.cz, gregkh@suse.de,
	linux-kernel@vger.kernel.org, Oleg Nesterov <oleg@tv-sign.ru>,
	Oliver Neukum <oliver@neukum.org>
Subject: Re: 29-rc-mmotm - HID/USB wedge w/ WARNING: at kernel/workqueue.c:371
Date: Tue, 17 Mar 2009 19:50:04 -0700	[thread overview]
Message-ID: <20090317195004.18fb6af6.akpm@linux-foundation.org> (raw)
In-Reply-To: <49C05C94.7030104@cn.fujitsu.com>

On Wed, 18 Mar 2009 10:29:40 +0800 Lai Jiangshan <laijs@cn.fujitsu.com> wrote:

> Valdis.Kletnieks@vt.edu wrote:
> > On Tue, 17 Mar 2009 13:54:24 PDT, Andrew Morton said:
> > 
> >> It's an error in workqueue-avoid-recursion-in-run_workqueue.patch, methinks.
> > 
> > Thanks for the diagnosis - I got as far as realizing that any backtrace that
> > included flush_cpu_workqueue() and worker_thread() had a problem and got
> > stuck there.
> > 
> 
> It's dangerous when we allow recursion in run_workqueue().

static void run_workqueue(struct cpu_workqueue_struct *cwq)
{
	spin_lock_irq(&cwq->lock);
	cwq->run_depth++;
	if (cwq->run_depth > 3) {
		/* morton gets to eat his hat */
		printk("%s: recursion depth exceeded: %d\n",
			__func__, cwq->run_depth);
		dump_stack();
	}

That was added five or six years ago, and I never ever got to eat my hat.

> If it's hard for you avoid flush_scheduled_work() in
> keventd's work fuction by other fix, you can create
> another workqueue to handle your works, IMO.

Why do we need to change anything here?  No known bugs were fixed, and some
new ones were added.


  reply	other threads:[~2009-03-18  2:57 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-17  6:33 29-rc-mmotm - HID/USB wedge w/ WARNING: at kernel/workqueue.c:371 Valdis.Kletnieks
2009-03-17 14:58 ` Alan Cox
2009-03-17 15:07 ` Oliver Neukum
2009-03-17 16:55   ` Valdis.Kletnieks
2009-03-17 20:53 ` Greg KH
2009-03-17 23:48   ` Valdis.Kletnieks
2009-03-17 20:54 ` Andrew Morton
2009-03-17 22:01   ` Valdis.Kletnieks
2009-03-18  2:29     ` Lai Jiangshan
2009-03-18  2:50       ` Andrew Morton [this message]
2009-03-18  3:26         ` Lai Jiangshan
2009-03-18  7:48           ` Oliver Neukum
2009-03-20 13:42             ` Valdis.Kletnieks

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=20090317195004.18fb6af6.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=Valdis.Kletnieks@vt.edu \
    --cc=gregkh@suse.de \
    --cc=jkosina@suse.cz \
    --cc=laijs@cn.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oleg@tv-sign.ru \
    --cc=oliver@neukum.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox