LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: Linux-pm mailing list <linux-pm@lists.linux-foundation.org>,
Kernel development list <linux-kernel@vger.kernel.org>,
Alexey Starikovskiy <astarikovskiy@suse.de>
Subject: Re: [linux-pm] Fundamental flaw in system suspend, exposed by freezer removal
Date: Mon, 3 Mar 2008 17:48:45 -0500 (EST) [thread overview]
Message-ID: <Pine.LNX.4.44L0.0803031626180.8280-100000@iolanthe.rowland.org> (raw)
In-Reply-To: <200803032147.10223.rjw@sisk.pl>
On Mon, 3 Mar 2008, Rafael J. Wysocki wrote:
> > > Of course, it won't be necessary if the ->suspend_begin() methods are called
> > > in an initial forward pass through dpm_active.
> >
> > Right. That would be simpler.
Let's stick with that for now.
What about on the resume side? Do you want to prevent child
registrations until after end_sleep has run? Or would you be okay with
allowing the resume method to register new children? It should be safe
to assume that drivers are smart enough to bring the device back to
full power before looking for new children.
In fact, maybe we don't need an end_sleep method at all. There isn't
any synchronization issue to worry about -- drivers aren't going to
register their new children in a suspended state!
> > > That's correct. Perhaps we should change device_add().
> >
> > I had a change like that in my version of the patch. It's excerpted
> > below.
>
> Hm, I wonder why you didn't move dpm_sysfs_add() along with device_pm_add()?
Because I didn't think of it. :-)
> Perhaps it's better to include dpm_sysfs_add() into device_pm_add(), since we
> are going the make the return a result anyway?
Yes.
> > > I thought ->suspend() would be mandatory, even if it's to be empty.
> >
> > There's no need for that. If it isn't implemented, treat it as though
> > it was successful.
>
> Well, I'm not sure. Right now we have a problem with distinguishing drivers
> that don't implement ->suspend() purposefully from the ones that just don't
> support suspend/hibernation ...
>
> OTOH, since we are going to have a pointer to 'struct pm_ops', we can safely
> assume that if it's not NULL, the driver writer knows what he's doing.
That's reasonable. If a driver doesn't support PM then it won't have
a pm_ops pointer.
> > > > Here's something else to think about. We might want to allow some
> > > > devices to be "power-irrelevant". That is, the device exists in the
> > > > kernel only as a representation of some software state, not as a
> > > > physical device. It doesn't consume power, it doesn't have any state
> > > > to lose during a sleep, and its driver doesn't implement suspend or
> > > > resume methods. For these sorts of devices, we might allow
> > > > device_add() to skip calling device_pm_add() altogether. USB
> > > > interfaces are a little like this, as are SCSI hosts and MMC hosts.
> > >
> > > If such devices serve as logical parents of some "real" ones, we should
> > > at least mark them as "sleeping" during suspend to protect the dpm_active
> > > ordering.
> >
> > They wouldn't have to be marked at all. They would never get on any of
> > the PM lists, because they would never be passed to device_pm_add().
>
> But dev->parent will be not NULL for their children being on dpm_active ...
>
> IMO it's simpler to just add those devices without any suspend callbacks
> defined to dpm_active and handle them normally than to introduce a special
> case.
Yeah, I'm just trying to think too far ahead.
Alan Stern
next prev parent reply other threads:[~2008-03-03 22:48 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-25 15:39 Alan Stern
2008-02-25 19:46 ` [linux-pm] " Alan Stern
2008-02-25 22:25 ` Rafael J. Wysocki
2008-02-25 23:37 ` Alan Stern
2008-02-26 0:07 ` Rafael J. Wysocki
2008-02-26 15:49 ` Alan Stern
2008-02-26 23:17 ` Rafael J. Wysocki
2008-02-27 16:03 ` Alan Stern
2008-02-27 19:50 ` Rafael J. Wysocki
2008-02-27 20:15 ` Alan Stern
2008-02-28 22:49 ` Alan Stern
2008-02-29 0:01 ` Rafael J. Wysocki
2008-02-29 14:26 ` Rafael J. Wysocki
2008-02-29 15:53 ` Alan Stern
2008-02-29 17:02 ` Rafael J. Wysocki
2008-02-29 18:42 ` Alan Stern
2008-02-29 21:57 ` Rafael J. Wysocki
2008-02-29 22:46 ` Alan Stern
2008-03-01 0:13 ` Rafael J. Wysocki
2008-03-01 15:30 ` Alan Stern
2008-03-02 13:37 ` Rafael J. Wysocki
2008-03-02 16:22 ` Alan Stern
2008-03-02 19:11 ` Rafael J. Wysocki
2008-03-03 3:54 ` Alan Stern
2008-03-03 16:32 ` Rafael J. Wysocki
2008-03-03 17:43 ` Alan Stern
2008-03-03 20:47 ` Rafael J. Wysocki
2008-03-03 22:48 ` Alan Stern [this message]
2008-03-03 22:56 ` Rafael J. Wysocki
2008-03-03 23:12 ` Alan Stern
2008-03-03 23:18 ` Rafael J. Wysocki
2008-02-26 7:13 ` David Brownell
2008-02-26 8:25 ` David Newall
2008-02-26 9:16 ` David Brownell
2008-02-26 13:36 ` David Newall
2008-02-26 15:58 ` Alan Stern
2008-02-25 22:24 ` Rafael J. Wysocki
2008-02-27 20:36 ` Benjamin Herrenschmidt
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=Pine.LNX.4.44L0.0803031626180.8280-100000@iolanthe.rowland.org \
--to=stern@rowland.harvard.edu \
--cc=astarikovskiy@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=rjw@sisk.pl \
--subject='Re: [linux-pm] Fundamental flaw in system suspend, exposed by freezer removal' \
/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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).