From: David Brownell <david-b@pacbell.net>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: linux-pm@lists.linux-foundation.org,
Pekka Enberg <penberg@cs.helsinki.fi>,
Johannes Berg <johannes@sipsolutions.net>,
Pavel Machek <pavel@ucw.cz>,
Nigel Cunningham <nigel@nigel.suspend2.net>
Subject: Re: Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy))
Date: Fri, 4 May 2007 15:00:33 -0700 [thread overview]
Message-ID: <200705041500.33849.david-b@pacbell.net> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0705041040540.3417-100000@iolanthe.rowland.org>
On Friday 04 May 2007, Alan Stern wrote:
> On Thu, 3 May 2007, David Brownell wrote:
>
> > On Thursday 03 May 2007, Alan Stern wrote:
> >
> > > In fact, shouldn't the poweroff at the end of a hibernate be exactly the
> > > same as a normal non-hibernate poweroff?
> >
> > No. One of the differences between ACPI S4 (hibernate)
> > and S5 (poweroff) states is for example how wakeup behaves.
> > Look for example at /proc/acpi/wakeup and see how many
> > devices are listed as "can wake from S5" vs from S4 ...
> > most systems support some S4 events, not so for S5.
> >
> > Another is that S4 can consume more power.
>
> You are describing the difference between ACPI S4 and S5, but I was
> talking about the difference between "normal" poweroff and "hibernate"
> poweroff. There doesn't seem to be any reason why we must always have
>
> hibernate = S4 and normal = S5.
What the ACPI spec describes for the "Non-Volatile Sleep" is
that either S4 or S5 could match "hibernate" ... but for
a software-controlled "poweroff", only S5 is appropriate.
That's a reason. Another: pretty much all end-user docs
on this stuff match what ACPI says.
Lacking compelling reasons to violate specs (like them
being clearly broken), I avoid breaking them.
> > Non-ACPI systems can make the same natural distinctions.
>
> On such systems there seems to be even less reason for those equalities
> (or rather, their analogs).
This is one of those "less is more" things, right? :)
People doing embedded designs _like_ their flexibility.
It's common to have multiple power levels. If you mean
that they _could_ give up that flexibility and only use
one of those state analogues, yes they could ... but if
you mean they'd see that as a Good Thing, I doubt it.
>
> > > We are letting ourselves in for problems if we say that when the snapshot
> > > is restored, devices may or may not need to be reinitialized.
> >
> > We have those problems already.
>
> Exactly because we are waffling on this issue. If we settled the matter
> once and for all (devices must ALWAYS be reinitialized after the snapshot
> is restored) then we wouldn't have those problems. (We might have other
> problems though...)
We *WOULD* have problems.
I guess I don't see why you want to throw away all the
work the hardware (and/or software) designers did to
ensure that some key devices use a "retention" mode
in their S4-analogue state.
Me, I always thought that leveraging those retention
states was a great way to shrink wakeup times and get
more functionality.
> > > Even worse, the device may _appear_ not
> > > to need reinitialization because the firmware (BIOS) has already
> > > initialized it but left it in a state that's useless for the kernel's
> > > purposes. (That's part of the reason why PRETHAW was added.)
> >
> > That's *ALL* of the reason for PRETHAW. I asked the
> > guy who did it. ;)
>
> Well, be fair. If your resume methods had some way to know whether or not
> a snapshot had just been restored then you wouldn't have needed to add
> PRETHAW. So another part of the reason is that restore() methods don't
> take a pm_message_t argument.
Well, to be fair he says he didn't even consider such an
intrusive change. The entire *reason* was to address that
particular issue. Implementation tradeoffs are separate.
> > > Why shouldn't the same devices work for wakeup from hibernate and wakeup
> > > from normal poweroff?
> >
> > You're suggesting Linux not use the S5 state, essentially.
>
> No, I'm suggesting that the user should be able to control whether Linux
> uses S4 vs. S5 at poweroff time. If the user selected always to use S4
> then wakeup devices would function in both hibernation and normal
> shutdown. If the user selected always to use S5 then wakeup devices would
> not function in either hibernation or normal shutdown.
That's a different suggestion, yes. I'm not sure I see any
benefit of that flexibility for "soft off" states though,
especially if it made "off" consume more power.
> > So the question is really "why should Linux use S5 (and similar
> > states on non-ACPI systems), instead of disregarding the ACPI
> > spec?"
> >
> > The short answer: having a "true OFF" state is valuable, if
> > for no other reason than to cope with buggy "partial-ON" states
> > like S4. Also, it's not clear that disregarding ACPI's guidance
> > here would be a good thing.
>
> Which part of ACPI's so-called guidance are you referring to?
Section 2.2 of the spec I looked at, which defines how non-volatile
sleep relates to S4 and S5 states, and to the G3 "Mechanical OFF"
which could also be entered from either of those by flick'o'switch.
- Dave
next prev parent reply other threads:[~2007-05-04 22:00 UTC|newest]
Thread overview: 117+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20070425072350.GA6866@ucw.cz>
[not found] ` <Pine.LNX.4.64.0704251239110.8406@vaio.localdomain>
[not found] ` <alpine.LFD.0.98.0704251252070.9964@woody.linux-foundation.org>
[not found] ` <20070425202741.GC17387@elf.ucw.cz>
[not found] ` <alpine.LFD.0.98.0704251332090.9964@woody.linux-foundation.org>
[not found] ` <20070425214420.GG17387@elf.ucw.cz>
[not found] ` <alpine.LFD.0.98.0704251515140.9964@woody.linux-foundation.org>
[not found] ` <1177540027.5025.87.camel@nigel.suspend2.net>
[not found] ` <alpine.LFD.0.98.0704251550210.9964@woody.linux-foundation.org>
[not found] ` <1177583998.6814.42.camel@johannes.berg>
[not found] ` <20070426113005.GU17387@elf.ucw.cz>
2007-04-26 16:31 ` suspend2 merge (was Re: [Suspend2-devel] Re: CFS and suspend2: hang in atomic copy) Johannes Berg
2007-04-26 18:40 ` Rafael J. Wysocki
2007-04-26 18:40 ` Johannes Berg
[not found] ` <1177612802.6814.121.camel@johannes.berg>
2007-04-26 19:02 ` Rafael J. Wysocki
[not found] ` <200704262102.38568.rjw@sisk.pl>
2007-04-27 9:41 ` Johannes Berg
[not found] ` <1177666915.7828.35.camel@johannes.berg>
2007-04-27 10:09 ` Johannes Berg
2007-04-27 10:18 ` Rafael J. Wysocki
[not found] ` <200704271218.07120.rjw@sisk.pl>
2007-04-27 10:19 ` Johannes Berg
[not found] ` <1177669179.7828.53.camel@johannes.berg>
[not found] ` <200704271409.56687.rjw@sisk.pl>
2007-04-27 12:07 ` Johannes Berg
2007-04-27 12:09 ` Rafael J. Wysocki
2007-04-29 12:48 ` [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) R. J. Wysocki
2007-04-29 12:53 ` Rafael J. Wysocki
2007-04-30 8:29 ` Johannes Berg
2007-04-30 14:51 ` Rafael J. Wysocki
2007-04-30 14:59 ` Johannes Berg
2007-05-01 14:05 ` Rafael J. Wysocki
2007-05-01 22:02 ` Rafael J. Wysocki
2007-05-02 5:13 ` Alexey Starikovskiy
2007-05-02 13:42 ` Rafael J. Wysocki
2007-05-02 14:11 ` Alexey Starikovskiy
2007-05-02 19:26 ` ACPI code in platform mode hibernation code paths (was: Re: [PATCH] swsusp: do not use pm_ops) Rafael J. Wysocki
[not found] ` <200705022126.47897.rjw@sisk.pl>
2007-05-03 22:48 ` Pavel Machek
[not found] ` <20070503224807.GD13426@elf.ucw.cz>
2007-05-03 23:14 ` Rafael J. Wysocki
2007-05-04 10:54 ` Johannes Berg
[not found] ` <1178276072.7408.7.camel@johannes.berg>
2007-05-04 12:08 ` Pavel Machek
[not found] ` <20070504120802.GF13426@elf.ucw.cz>
2007-05-04 12:29 ` Rafael J. Wysocki
2007-05-02 8:21 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) Johannes Berg
2007-05-02 9:02 ` Rafael J. Wysocki
2007-05-02 9:16 ` Pavel Machek
2007-05-02 9:25 ` Johannes Berg
2007-05-03 14:00 ` Alan Stern
2007-05-03 17:17 ` Rafael J. Wysocki
2007-05-03 18:33 ` Alan Stern
2007-05-03 19:47 ` Rafael J. Wysocki
2007-05-03 19:59 ` Alan Stern
2007-05-03 20:21 ` Rafael J. Wysocki
2007-05-04 14:40 ` Alan Stern
2007-05-04 20:20 ` Rafael J. Wysocki
2007-05-04 20:21 ` Johannes Berg
2007-05-04 20:55 ` Pavel Machek
2007-05-04 21:08 ` Johannes Berg
2007-05-04 21:15 ` Pavel Machek
2007-05-04 21:53 ` Rafael J. Wysocki
2007-05-04 21:53 ` Johannes Berg
2007-05-04 22:25 ` Rafael J. Wysocki
2007-05-05 15:52 ` Alan Stern
2007-05-07 1:16 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: ...) David Brownell
2007-05-07 21:00 ` Rafael J. Wysocki
2007-05-07 21:45 ` David Brownell
2007-05-07 22:16 ` Rafael J. Wysocki
2007-05-09 19:23 ` David Brownell
2007-05-04 21:06 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) Rafael J. Wysocki
2007-05-04 20:58 ` Pavel Machek
2007-05-04 21:24 ` Rafael J. Wysocki
2007-05-05 16:19 ` Alan Stern
2007-05-05 17:46 ` Rafael J. Wysocki
2007-05-05 21:42 ` Alan Stern
2007-05-05 22:14 ` Rafael J. Wysocki
2007-05-04 21:40 ` David Brownell
2007-05-04 22:19 ` Rafael J. Wysocki
2007-05-07 1:05 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: ...)) David Brownell
2007-05-05 16:08 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) Alan Stern
2007-05-05 17:50 ` Rafael J. Wysocki
2007-05-05 21:43 ` Alan Stern
2007-05-05 22:16 ` Rafael J. Wysocki
2007-05-07 1:31 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: ...) David Brownell
2007-05-07 16:33 ` Alan Stern
2007-05-07 20:49 ` Pavel Machek
2007-05-07 21:38 ` Alan Stern
2007-05-08 0:30 ` Pavel Machek
2007-05-03 20:33 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) David Brownell
2007-05-03 20:33 ` David Brownell
2007-05-03 20:51 ` Rafael J. Wysocki
2007-05-04 14:51 ` Alan Stern
2007-05-04 14:56 ` Johannes Berg
2007-05-04 20:27 ` Rafael J. Wysocki
2007-05-04 22:00 ` David Brownell [this message]
2007-05-05 15:49 ` Alan Stern
2007-05-07 1:10 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: ...)) David Brownell
2007-05-07 18:46 ` Alan Stern
2007-05-07 21:29 ` Rafael J. Wysocki
2007-05-07 22:22 ` Alan Stern
2007-05-07 22:47 ` Rafael J. Wysocki
2007-05-08 14:56 ` Alan Stern
2007-05-08 19:59 ` Rafael J. Wysocki
2007-05-08 21:26 ` Alan Stern
2007-05-09 8:17 ` Pavel Machek
2007-05-09 15:21 ` Alan Stern
2007-05-09 19:35 ` David Brownell
2007-05-09 20:04 ` Alan Stern
2007-05-09 20:21 ` David Brownell
2007-05-10 15:17 ` Alan Stern
2007-05-09 21:07 ` Pavel Machek
2007-05-07 21:43 ` David Brownell
2007-05-07 22:41 ` Alan Stern
2007-05-03 22:18 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) Pavel Machek
2007-05-04 14:57 ` Alan Stern
2007-05-04 20:50 ` Rafael J. Wysocki
2007-05-04 20:49 ` Johannes Berg
2007-05-04 21:11 ` Rafael J. Wysocki
2007-05-04 21:23 ` Johannes Berg
2007-05-04 21:55 ` Rafael J. Wysocki
2007-05-04 21:54 ` Johannes Berg
2007-05-04 22:21 ` Rafael J. Wysocki
2007-05-05 15:37 ` Alan Stern
2007-05-05 18:49 ` Rafael J. Wysocki
2007-05-05 21:44 ` Alan Stern
2007-05-05 22:36 ` Rafael J. Wysocki
2007-05-06 22:01 ` Alan Stern
2007-05-06 22:31 ` Rafael J. Wysocki
2007-05-07 1:37 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: ..) David Brownell
2007-05-08 2:57 ` Greg KH
2007-05-07 8:51 ` Re: [PATCH] swsusp: do not use pm_ops (was: Re: suspend2 merge (was: Re: CFS and suspend2: hang in atomic copy)) Johannes Berg
2007-05-04 22:12 ` David Brownell
2007-05-04 22:31 ` Rafael J. Wysocki
2007-05-05 16:15 ` Alan Stern
2007-05-02 13:43 ` Rafael J. Wysocki
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=200705041500.33849.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=johannes@sipsolutions.net \
--cc=linux-pm@lists.linux-foundation.org \
--cc=nigel@nigel.suspend2.net \
--cc=pavel@ucw.cz \
--cc=penberg@cs.helsinki.fi \
--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