public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Oliver Neukum <oliver@neukum.org>
Cc: Alan Stern <stern@rowland.harvard.edu>,
	linux-pm@lists.linux-foundation.org,
	ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [patch update] Re: [linux-pm] Run-time PM idea (was: Re: [RFC][PATCH 0/2] PM: Rearrange core suspend code)
Date: Wed, 10 Jun 2009 21:27:56 +0200	[thread overview]
Message-ID: <200906102127.57136.rjw@sisk.pl> (raw)
In-Reply-To: <200906101620.26559.oliver@neukum.org>

On Wednesday 10 June 2009, Oliver Neukum wrote:
> Am Mittwoch, 10. Juni 2009 10:29:26 schrieb Rafael J. Wysocki:
> > Argh, I forgot about some important things.
> >
> > First, there are devices with no parent (actually, it would be much easier
> > if they had a default dummy parent, but that's a separate issue).
> >
> > Second, the parent has to be taken into account in the asynchronous resume
> > path too (which BTW is more complicated).
> 
> What happens if the parent's parent is also suspended? It seems to me that
> you must code this recursively.

Hmm, I thought I did.

[Looks]

pm_request_resume(dev) will call pm_request_resume(dev->parent), if necessary,
and that will call pm_request_resume(dev->parent->parent) and so on.  Each of
them will queue a work item and the one for the topmost parent will be queued
first.  So, the resume requests for all parents will be executed before the
one for the device, due to the fact that the workqueue is singlethread.

Well, there is a bug related to it, namely pm_autosuspend() may change the
status to RPM_SUSPENDED after pm_request_resume() has changed it to
RPM_WAKE, that needs fixing.

Best,
Rafael

  reply	other threads:[~2009-06-10 19:28 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-06 22:54 [RFC][PATCH 0/2] PM: Rearrange core suspend code Rafael J. Wysocki
2009-06-06 22:55 ` [RFC][PATCH 1/2] PM: Separate suspend to RAM functionality from core Rafael J. Wysocki
2009-06-08  6:36   ` Pavel Machek
2009-06-06 22:56 ` [RFC][PATCH 2/2] PM/Hibernate: Rename disk.c to hibernate.c Rafael J. Wysocki
2009-06-08  6:37   ` Pavel Machek
2009-06-07 20:51 ` [linux-pm] [RFC][PATCH 0/2] PM: Rearrange core suspend code Alan Stern
2009-06-07 21:46   ` Run-time PM idea (was: Re: [linux-pm] [RFC][PATCH 0/2] PM: Rearrange core suspend code) Rafael J. Wysocki
2009-06-07 22:02     ` Oliver Neukum
2009-06-07 22:05     ` [linux-pm] Run-time PM idea (was: " Oliver Neukum
2009-06-08 11:29       ` Rafael J. Wysocki
2009-06-08 12:04         ` Oliver Neukum
2009-06-08 18:34           ` Rafael J. Wysocki
2009-06-09  7:25             ` Oliver Neukum
2009-06-09 14:33               ` Alan Stern
2009-06-09 14:48                 ` Oliver Neukum
2009-06-09 22:44               ` Rafael J. Wysocki
2009-06-08 20:35         ` Alan Stern
2009-06-08 21:31           ` Rafael J. Wysocki
2009-06-09  2:49             ` Alan Stern
2009-06-09 22:57               ` Rafael J. Wysocki
2009-06-10  8:29                 ` [patch update] " Rafael J. Wysocki
2009-06-10 14:20                   ` Oliver Neukum
2009-06-10 19:27                     ` Rafael J. Wysocki [this message]
2009-06-10 21:38                       ` Oliver Neukum
2009-06-10 22:01                         ` Rafael J. Wysocki
2009-06-10 23:07                           ` Oliver Neukum
2009-06-10 23:42                             ` Alan Stern
2009-06-11 13:48                               ` Rafael J. Wysocki
2009-06-11 13:57                                 ` Oliver Neukum
2009-06-11 14:16                                   ` Alan Stern
2009-06-11 19:38                                     ` Rafael J. Wysocki
2009-06-11 13:46                             ` Rafael J. Wysocki
2009-06-10 21:14                   ` Alan Stern
2009-06-10 21:31                     ` Rafael J. Wysocki
2009-06-10 23:15                       ` Oliver Neukum
2009-06-11  5:27                         ` Magnus Damm
2009-06-10 23:42                       ` Alan Stern
2009-06-11 14:17                         ` Rafael J. Wysocki
2009-06-11 14:52                           ` Alan Stern
2009-06-11 15:06                             ` Oliver Neukum
2009-06-11 15:22                               ` Alan Stern
2009-06-11 16:05                                 ` Oliver Neukum
2009-06-11 18:36                                   ` Alan Stern
2009-06-11 21:05                                     ` Oliver Neukum
2009-06-12  2:16                                       ` Alan Stern
2009-06-12  8:15                                         ` Oliver Neukum
2009-06-12 14:32                                           ` Alan Stern
2009-06-12 19:09                                             ` Rafael J. Wysocki
2009-06-12 19:48                                               ` Alan Stern
2009-06-12 19:56                                                 ` Rafael J. Wysocki
2009-06-12 21:23                                                   ` Alan Stern
2009-06-12 23:06                                                     ` Rafael J. Wysocki
2009-06-13 18:08                                                       ` Alan Stern
2009-06-13 22:04                                                         ` Rafael J. Wysocki
2009-06-11 19:43                             ` Rafael J. Wysocki
2009-06-12 14:25                               ` Alan Stern
2009-06-11  5:18                   ` Magnus Damm
2009-06-11  9:08                     ` Oliver Neukum
2009-06-12  3:13                       ` Magnus Damm
2009-06-12  8:11                         ` Oliver Neukum
2009-06-12 10:54                           ` Magnus Damm
2009-06-10 20:48                 ` Alan Stern
2009-06-10 21:15                   ` Rafael J. Wysocki
2009-06-09  7:31             ` Oliver Neukum
2009-06-09 23:02               ` Rafael J. Wysocki
2009-06-08  6:54     ` Run-time PM idea (was: Re: [linux-pm] " Ingo Molnar
2009-06-08 11:30       ` Rafael J. Wysocki
2009-06-08 13:05         ` Ingo Molnar
2009-06-08 13:11           ` Matthew Garrett
2009-06-08 13:22             ` Ingo Molnar
2009-06-08 13:32               ` Matthew Garrett
2009-06-08 13:46                 ` Ingo Molnar
2009-06-08 13:54                   ` Matthew Garrett
2009-06-08 14:24                     ` Ingo Molnar
2009-06-08 14:35                       ` Matthew Garrett
2009-06-08 14:44                         ` Ingo Molnar
2009-06-08 14:51                           ` Matthew Garrett
2009-06-24 15:03                             ` Pavel Machek
2009-06-19  1:50                         ` Run-time PM idea (was: " Robert Hancock
2009-06-08 13:58                   ` Run-time PM idea (was: Re: [linux-pm] " Oliver Neukum
2009-06-08 13:39               ` Oliver Neukum
2009-06-08 13:44                 ` Matthew Garrett
2009-06-08 14:21                 ` Ingo Molnar
2009-06-08 14:30                   ` Matthew Garrett
2009-06-08 15:06                     ` Ingo Molnar
2009-06-08 15:11                       ` Matthew Garrett
2009-06-08 16:29                       ` Ray Lee
2009-06-09 22:44                   ` Jiri Kosina

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=200906102127.57136.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=oliver@neukum.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