public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
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

  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