From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
LKML <linux-kernel@vger.kernel.org>,
pm list <linux-pm@lists.linux-foundation.org>
Subject: Re: Async suspend-resume patch w/ completions (was: Re: Async suspend-resume patch w/ rwsems)
Date: Sat, 12 Dec 2009 18:35:40 +0100 [thread overview]
Message-ID: <200912121835.40663.rjw@sisk.pl> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0912111938310.32493-100000@netrider.rowland.org>
On Saturday 12 December 2009, Alan Stern wrote:
> On Sat, 12 Dec 2009, Rafael J. Wysocki wrote:
>
> > Below is a patch I've just tested, but there's a lockdep problem in it I don't
> > know how to solve. Namely, lockdep is apparently unhappy with us not releasing
> > the lock taken in device_suspend() and it complains we take it twice in a row
> > (which we do, but for another device). I need to use down_read_non_owner()
> > to make it shut up and then I also need to use up_read_non_owner() in
> > __device_suspend(), although there's the comment in include/linux/rwsem.h
> > saying exatly this about that:
> >
> > /*
> > * Take/release a lock when not the owner will release it.
> > *
> > * [ This API should be avoided as much as possible - the
> > * proper abstraction for this case is completions. ]
> > */
> >
> > (I'd like to know your opinion about that). Yet, that's not all, because next
> > it complains during resume that __device_resume() releases a lock it didn't
> > acquire, which it clearly does, but that is intentional. Unfortunately,
> > there's no up_write_non_owner() ...
>
> Hah! I knew it!
>
> How come lockdep didn't complain earlier? What's different about this
> patch? Only the nesting annotations? Why should adding annotations
> make lockdep less happy?
I'm not sure. Perhaps I made a mistake during the previous tests.
Rafael
next parent reply other threads:[~2009-12-12 17:35 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.44L0.0912111938310.32493-100000@netrider.rowland.org>
2009-12-12 17:35 ` Rafael J. Wysocki [this message]
[not found] <Pine.LNX.4.44L0.0912201434340.27137-100000@netrider.rowland.org>
2009-12-20 19:51 ` Async suspend-resume patch w/ completions (was: Re: Async suspend-resume patch w/ rwsems) Rafael J. Wysocki
[not found] <200912201910.26895.rjw@sisk.pl>
2009-12-20 19:38 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912201210300.24162-100000@netrider.rowland.org>
2009-12-20 18:10 ` Rafael J. Wysocki
[not found] <200912201352.07689.rjw@sisk.pl>
2009-12-20 17:12 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912192232360.6618-100000@netrider.rowland.org>
2009-12-20 12:55 ` Rafael J. Wysocki
[not found] <Pine.LNX.4.44L0.0912192253200.6618-100000@netrider.rowland.org>
2009-12-20 12:52 ` Rafael J. Wysocki
[not found] <200912192241.03991.rjw@sisk.pl>
2009-12-20 3:48 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912181205290.2987-100000@iolanthe.rowland.org>
2009-12-19 21:41 ` Rafael J. Wysocki
[not found] <Pine.LNX.4.44L0.0912171444040.2645-100000@iolanthe.rowland.org>
2009-12-17 20:36 ` Rafael J. Wysocki
[not found] <Pine.LNX.4.44L0.0912161753540.2643-100000@iolanthe.rowland.org>
2009-12-16 23:18 ` Rafael J. Wysocki
[not found] ` <200912170018.05175.rjw@sisk.pl>
2009-12-17 1:30 ` Rafael J. Wysocki
[not found] <Pine.LNX.4.44L0.0912161018100.2909-100000@iolanthe.rowland.org>
2009-12-16 19:26 ` Rafael J. Wysocki
[not found] <alpine.LFD.2.00.0912151337350.14385@localhost.localdomain>
2009-12-15 22:27 ` Alan Stern
[not found] <200912152226.22578.rjw@sisk.pl>
2009-12-15 22:01 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912151444010.2643-100000@iolanthe.rowland.org>
2009-12-15 21:26 ` Rafael J. Wysocki
2009-12-15 21:54 ` Linus Torvalds
[not found] <Pine.LNX.4.44L0.0912151047410.3566-100000@iolanthe.rowland.org>
2009-12-15 16:28 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912150803250.14385@localhost.localdomain>
2009-12-15 18:57 ` Linus Torvalds
2009-12-15 20:26 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912131221210.1111-100000@netrider.rowland.org>
2009-12-13 19:02 ` Alan Stern
[not found] <200912112317.31668.rjw@sisk.pl>
2009-12-12 0:38 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912102155390.12136-100000@netrider.rowland.org>
2009-12-11 22:17 ` Rafael J. Wysocki
[not found] <Pine.LNX.4.44L0.0912101321020.2680-100000@iolanthe.rowland.org>
2009-12-10 23:51 ` Linus Torvalds
[not found] <Pine.LNX.4.44L0.0912101653120.2680-100000@iolanthe.rowland.org>
2009-12-10 23:45 ` Rafael J. Wysocki
[not found] <200912102214.40310.rjw@sisk.pl>
2009-12-10 22:17 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912101010090.2825-100000@iolanthe.rowland.org>
2009-12-10 15:45 ` Linus Torvalds
2009-12-10 21:14 ` Rafael J. Wysocki
[not found] <alpine.LFD.2.00.0912100739260.3560@localhost.localdomain>
2009-12-10 18:37 ` Alan Stern
[not found] <Pine.LNX.4.44L0.0912091729530.2672-100000@iolanthe.rowland.org>
2009-12-09 23:18 ` Rafael J. Wysocki
[not found] ` <200912100018.19723.rjw@sisk.pl>
2009-12-10 2:51 ` Linus Torvalds
2009-12-10 15:31 ` Alan Stern
[not found] ` <alpine.LFD.2.00.0912091835280.3560@localhost.localdomain>
2009-12-10 19:40 ` Rafael J. Wysocki
[not found] ` <200912102040.11063.rjw@sisk.pl>
2009-12-10 23:30 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912101507550.3560@localhost.localdomain>
2009-12-11 1:02 ` Rafael J. Wysocki
[not found] ` <200912110202.28536.rjw@sisk.pl>
2009-12-11 1:25 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912101713440.3560@localhost.localdomain>
2009-12-11 3:42 ` Alan Stern
2009-12-11 22:11 ` Rafael J. Wysocki
[not found] ` <200912112311.08548.rjw@sisk.pl>
2009-12-11 22:31 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912111415160.3922@localhost.localdomain>
2009-12-11 23:48 ` Rafael J. Wysocki
[not found] ` <200912120048.46180.rjw@sisk.pl>
2009-12-11 23:53 ` Linus Torvalds
2009-12-12 0:43 ` Alan Stern
[not found] ` <alpine.LFD.2.00.0912111552330.3526@localhost.localdomain>
2009-12-12 17:48 ` Rafael J. Wysocki
2009-12-12 18:54 ` Linus Torvalds
2009-12-12 22:34 ` Rafael J. Wysocki
2009-12-12 22:40 ` Rafael J. Wysocki
2009-12-14 18:21 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912141015240.26135@localhost.localdomain>
2009-12-14 22:11 ` Rafael J. Wysocki
[not found] ` <200912142311.31658.rjw@sisk.pl>
2009-12-14 22:41 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912141416040.26135@localhost.localdomain>
2009-12-14 22:43 ` Linus Torvalds
2009-12-14 23:18 ` Rafael J. Wysocki
[not found] ` <200912150018.11837.rjw@sisk.pl>
2009-12-15 0:10 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912141609020.14385@localhost.localdomain>
2009-12-15 0:11 ` Linus Torvalds
2009-12-15 11:03 ` Rafael J. Wysocki
[not found] ` <alpine.LFD.2.00.0912141610460.14385@localhost.localdomain>
2009-12-15 11:14 ` Rafael J. Wysocki
[not found] ` <200912151214.10980.rjw@sisk.pl>
2009-12-15 15:31 ` Linus Torvalds
[not found] ` <200912151203.22916.rjw@sisk.pl>
2009-12-15 15:26 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912150722310.14385@localhost.localdomain>
2009-12-15 15:55 ` Alan Stern
2009-12-16 2:11 ` Rafael J. Wysocki
[not found] ` <200912160311.05915.rjw@sisk.pl>
2009-12-16 6:40 ` Dmitry Torokhov
2009-12-16 15:22 ` Alan Stern
2009-12-16 15:47 ` Linus Torvalds
2009-12-16 19:27 ` Rafael J. Wysocki
[not found] ` <200912162027.16574.rjw@sisk.pl>
2009-12-16 20:59 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912161255080.3556@localhost.localdomain>
2009-12-16 21:57 ` Rafael J. Wysocki
[not found] ` <200912162257.00771.rjw@sisk.pl>
2009-12-16 22:11 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912161410120.3556@localhost.localdomain>
2009-12-16 22:33 ` Rafael J. Wysocki
2009-12-16 23:04 ` Alan Stern
2009-12-17 1:49 ` Rafael J. Wysocki
2009-12-17 20:06 ` Alan Stern
2009-12-18 1:51 ` Rafael J. Wysocki
[not found] ` <200912180251.22655.rjw@sisk.pl>
2009-12-18 17:26 ` Alan Stern
2009-12-18 23:42 ` Rafael J. Wysocki
[not found] ` <20091216064025.GB2699@core.coreip.homeip.net>
2009-12-18 22:43 ` Rafael J. Wysocki
2009-12-19 19:59 ` Dmitry Torokhov
[not found] ` <20091219195935.GB4073@core.coreip.homeip.net>
2009-12-19 21:33 ` Rafael J. Wysocki
[not found] ` <200912192233.44575.rjw@sisk.pl>
2009-12-19 22:29 ` Rafael J. Wysocki
[not found] ` <200912192329.03251.rjw@sisk.pl>
2009-12-19 22:43 ` Dmitry Torokhov
2009-12-19 22:47 ` Dmitry Torokhov
[not found] ` <A37A0A6F-3662-40C9-BE1F-B9F6A38CD80B@gmail.com>
2009-12-19 23:10 ` Rafael J. Wysocki
[not found] ` <200912200010.19899.rjw@sisk.pl>
2009-12-19 23:22 ` Dmitry Torokhov
2009-12-19 23:23 ` Linus Torvalds
[not found] ` <43A402BB-6AB3-4127-A441-D53EDE09F22E@gmail.com>
2009-12-19 23:33 ` Rafael J. Wysocki
[not found] ` <alpine.LFD.2.00.0912191521180.3712@localhost.localdomain>
2009-12-19 23:40 ` Rafael J. Wysocki
[not found] ` <200912200040.18944.rjw@sisk.pl>
2009-12-19 23:46 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912191542570.3712@localhost.localdomain>
2009-12-19 23:47 ` Linus Torvalds
2009-12-19 23:53 ` Rafael J. Wysocki
[not found] ` <alpine.LFD.2.00.0912191546250.3712@localhost.localdomain>
2009-12-19 23:54 ` Rafael J. Wysocki
[not found] ` <200912200053.45988.rjw@sisk.pl>
2009-12-20 0:09 ` Linus Torvalds
[not found] ` <alpine.LFD.2.00.0912191557320.3712@localhost.localdomain>
2009-12-20 0:35 ` Rafael J. Wysocki
2009-12-20 2:41 ` Dmitry Torokhov
[not found] ` <20091220024142.GC4073@core.coreip.homeip.net>
2009-12-20 19:25 ` Rafael J. Wysocki
[not found] ` <200912202025.25618.rjw@sisk.pl>
2009-12-21 7:39 ` Async suspend-resume patch w/ completions (was: Re: Async?suspend-resume " Dmitry Torokhov
[not found] ` <20091221073915.GC3234@core.coreip.homeip.net>
2009-12-21 11:20 ` Vojtech Pavlik
2009-12-20 2:45 ` Async suspend-resume patch w/ completions (was: Re: Async suspend-resume " Dmitry Torokhov
2009-12-20 3:59 ` Alan Stern
2009-12-13 13:08 ` Rafael J. Wysocki
2009-12-13 17:30 ` Alan Stern
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=200912121835.40663.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=stern@rowland.harvard.edu \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox