public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: David Brownell <david-b@pacbell.net>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Dave Young <hidave.darkstar@gmail.com>, Greg KH <gregkh@suse.de>,
	Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH 01/12] Use mutex instead of semaphore in driver core
Date: Sat, 29 Dec 2007 22:42:47 -0800	[thread overview]
Message-ID: <200712292242.47960.david-b@pacbell.net> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0712291652540.26261-100000@netrider.rowland.org>

On Saturday 29 December 2007, Alan Stern wrote:
> lockdep warns whenever a task acquires a mutex while holding another
> mutex of the same kind (that is, the same member in another structure
> of the same type).  But there are lots of places where the kernel needs
> to acquire dev->sem for one device while already holding
> dev->parent->sem.

Not just devices.  I've seen the same issue with genirq when
enabling or disabling wakeup:  while holding irq_desc[354].lock
it must also acquire the parent IRQ's irq_desc[37].lock so it
can update that parent IRQ's wake flag ... because the wake
signal goes from the child up to the parent up to the logic
that kicks the clock framework and thence the CPU, and software
must enable at least some of those paths by hand.

And lockdep says "[ INFO: possible recursive locking detected ]".
But the analysis is "ignore that one, it's a false alarm".


> There's no way to remove these, which means there's 
> no way to prevent lockdep from issuing a warning.

There may be no *efficient* way to do that.  If it tracked
every lock individually these false alarms could go away;
but that would increase the overhead to create and destroy
such locks too.

Such tradeoffs are what make it Engineering, not Science.  ;)

- Dave


  reply	other threads:[~2007-12-30  6:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-29  1:01 [PATCH 01/12] Use mutex instead of semaphore in driver core Dave Young
2007-12-29  1:29 ` Peter Zijlstra
2007-12-29  1:36   ` Dave Young
2007-12-29  1:40     ` Dave Young
2007-12-29  1:42     ` Peter Zijlstra
2007-12-29  1:52       ` Dave Young
2007-12-29  1:57         ` Peter Zijlstra
2007-12-29  2:03           ` Dave Young
2007-12-29  2:36             ` Dave Young
2007-12-29  4:42               ` Greg KH
2007-12-29  5:06                 ` Dave Young
2007-12-29  7:07                   ` Dave Young
2007-12-29 17:07                     ` Greg KH
2008-01-02  0:54                       ` Dave Young
2008-01-02  5:18                         ` Greg KH
2008-01-02  5:25                           ` David Miller
2008-01-02  7:00                             ` Greg KH
2008-01-02  7:52                               ` David Miller
2008-01-02 12:39                               ` Jarek Poplawski
2008-01-02 13:12                                 ` Jarek Poplawski
2008-01-02 16:08                               ` Alan Stern
2008-01-03  1:00                                 ` Dave Young
2008-01-02  5:37                           ` Dave Young
2007-12-29 22:01                     ` Alan Stern
2007-12-30  6:42                       ` David Brownell [this message]
2007-12-30 12:13                         ` Peter Zijlstra
2008-01-08 16:54                         ` Jiri Kosina
2008-01-02  0:58                       ` Dave Young
2008-01-02 16:06                         ` Alan Stern
2008-01-05  9:30           ` Andrew Morton

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=200712292242.47960.david-b@pacbell.net \
    --to=david-b@pacbell.net \
    --cc=gregkh@suse.de \
    --cc=hidave.darkstar@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=stern@rowland.harvard.edu \
    /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