All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Dave Young <hidave.darkstar@gmail.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Ingo Molnar <mingo@elte.hu>
Subject: Re: 2.6.24-rc7 lockdep warning when poweroff
Date: Tue, 15 Jan 2008 09:42:16 +0100	[thread overview]
Message-ID: <1200386536.15103.16.camel@twins> (raw)
In-Reply-To: <20080115012402.GA2780@darkstar.te-china.tietoenator.com>


On Tue, 2008-01-15 at 09:24 +0800, Dave Young wrote:
> On Tue, Jan 15, 2008 at 08:31:48AM +0800, Dave Young wrote:
> > On Jan 14, 2008 6:51 PM, Johannes Berg <johannes@sipsolutions.net> wrote:
> > >
> > > > The warning that triggered (lockdep.c:700) means that one class (key)
> > > > was used with more than one name.
> > >
> > > Right.
> > >
> > > > Looking at cleanup_workqueue_thread(), the lock_acquire() there works on
> > > > wq->lockdep_map, and that is only initialized at one spot:
> > > > __create_workqueue_key(), thus it stands to reason that that was
> > > > mis-used.
> > >
> > > Oh ok, yes, makes sense. Maybe something is generating a workqueue with
> > > a name that's passed in but the key is statically from that place. I'll
> > > try to find it.
> > 
> > I add some debug printk and found the names :
> > 
> > block_osm/exec_osm
> > 
> > in drivers/message/i2o
> > 
> > maybe this helps.
> 
> Not sure right or not, the following patch fixed the problem:
> 
> diff -upr linux/include/linux/workqueue.h linux.new/include/linux/workqueue.h
> --- linux/include/linux/workqueue.h	2008-01-15 08:49:08.000000000 +0800
> +++ linux.new/include/linux/workqueue.h	2008-01-15 08:49:42.000000000 +0800
> @@ -154,7 +154,7 @@ __create_workqueue_key(const char *name,
>  #ifdef CONFIG_LOCKDEP
>  #define __create_workqueue(name, singlethread, freezeable)	\
>  ({								\
> -	static struct lock_class_key __key;			\
> +	struct lock_class_key __key;			\
>  								\
>  	__create_workqueue_key((name), (singlethread),		\
>  			       (freezeable), &__key);		\

That didn't get you:

  INFO: trying to register non-static key.

Msgs?

But it sure looks like __create_workqueue() is asking for trouble, if
there is a __create_workqueue() instance that takes a non constant name
we're in trouble.


  reply	other threads:[~2008-01-15  8:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-14  9:04 2.6.24-rc7 lockdep warning when poweroff Dave Young
2008-01-14  9:24 ` Peter Zijlstra
2008-01-14 10:35   ` Johannes Berg
2008-01-14 10:41     ` Peter Zijlstra
2008-01-14 10:51       ` Johannes Berg
2008-01-15  0:31         ` Dave Young
2008-01-15  1:24           ` Dave Young
2008-01-15  8:42             ` Peter Zijlstra [this message]
2008-01-15 10:41         ` Johannes Berg
2008-01-15 12:21           ` Peter Zijlstra
2008-01-15 12:39             ` Johannes Berg
2008-01-15 12:47               ` Peter Zijlstra
2008-01-15 13:04                 ` [PATCH for 2.6.24] fix workqueue creation API lockdep interaction Johannes Berg
2008-01-16  4:41                   ` Dave Young
2008-01-16  8:11                 ` 2.6.24-rc7 lockdep warning when poweroff Ingo Molnar
2008-01-15 23:54             ` Johannes Berg

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=1200386536.15103.16.camel@twins \
    --to=peterz@infradead.org \
    --cc=hidave.darkstar@gmail.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=torvalds@linux-foundation.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 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.