public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Nigel Cunningham <nigel@nigel.suspend2.net>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	Pavel Machek <pavel@ucw.cz>,
	Linux-pm mailing list <linux-pm@lists.linux-foundation.org>,
	Johannes Berg <johannes@sipsolutions.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: Sat, 5 May 2007 19:50:17 +0200	[thread overview]
Message-ID: <200705051950.18318.rjw@sisk.pl> (raw)
In-Reply-To: <Pine.LNX.4.44L0.0705051152300.1976-100000@netrider.rowland.org>

On Saturday, 5 May 2007 18:08, Alan Stern wrote:
> On Fri, 4 May 2007, David Brownell wrote:
> 
> > > Entering hibernation basically involves these steps:
> > > 
> > > 	1. Freeze tasks
> > > 	2. Quiesce devices and drivers
> > > 	3. Create snapshot
> > > 	4. Reactivate devices and drivers
> > > 	5. Save snapshot to disk
> > > 	6. Prepare devices for wakeup
> > > 	7. Power down (ACPI S4 on systems which support it)
> > > 
> > > Leaving hibernation involves a similar sequence which I won't discuss.
> > > 
> > > Notice that steps 1-5 above are _completely_ independent of all issues 
> > > concerning wakeup devices and S4 vs. S5 vs. whatever.  They have to be 
> > > carried out for hibernation to work, no matter how the system ends up 
> > > getting shut down.
> > 
> > Not exactly.  Step 2 is supposed to be aware of the target state's
> > capabilities, including what's wakeup-capable.
> 
> Not true.  Step 2 is (or should be) divorced from power-level
> considerations.  All it needs to do is quiesce things so that a consistent
> snapshot can be obtained; changing power levels would take time and
> ideally should be avoided.  Furthermore, anything done in step 2 should be
> reversed in step 4.
> 
> Did you mean to say that Step _6_ is supposed to be aware of the target 
> state's capabilities?  I'll agree to that.
> 
> 
> > However, the ACPI spec *does* say up front (2.2 in ACPI 2.0C)
> > that S5 == G2 "Soft OFF" is not a "sleeping" (G1) state.  (Then
> > fuzzes the issue in 2.4, but those bits are less relevant here;
> > 2.2 also mentions G3 = "Mechanical OFF", which is the only state
> > in which machine disassembly/reassembly is expected to be safe.
> 
> Sure.  But entering hibernation need not involve putting the system into a 
> "sleeping" state.  Going into G3 should also work for hibernation.
> 
> > ACPI is allowed to distinguish between S4 and S5 in more ways
> > than just the power usage.  It'd be fair for the AML to store
> > state in something that retains power, and rely on that.  It'd
> > be better not to do things that are allowed to confuse ACPI.
> 
> None of that should matter for post-snapshot-restore processing.  The 
> boot kernel interacts with ACPI when the system wakes up; the restored 
> kernel is handed an already-running BIOS, which it should do its best to 
> reinitialize from the existing hardware state.
> 
> 
> > > possible to enter hibernation without using it.  The system administrator 
> > > should be able to choose which of S4 or S5 gets used for _any_ poweroff, 
> > > regardless of whether it's to start hibernating.
> > 
> > But ... why?  What value would users see from that?
> > 
> > We do have /sys/power/disk today, but that's only for
> > hibernation.  (And it's a bit confusing, too.)
> 
> Yes.  I'm proposing that it be generalized.  (And it should be renamed,
> too -- that's a separate issue.)
> 
> I'm also pointing out that the policy choice decided by the contents of 
> /sys/power/disk comes into play during steps 6-7 above, but not at all in 
> steps 1-5.  Hence any associated software structures should explicitly be 
> connected only with steps 6 and 7.

At present, this policy choice does affect the earlier steps too.
 
> And since normal shutdown ought to have its own analog of steps 6 and 7, 
> the same software structures should be used there.  Hence naming them 
> "hibernation_ops" isn't a good idea.
> 
> 
> > I think it also assumes more intelligence on resume-from-S4
> > than Linux has just now, which may partly explain why it
> > takes so long for swsusp to finish its thing.
> 
> And it may explain some of the strange behavior people sometimes observe
> when they try to hibernate twice in a row.

Yes, this seems to be the case.

Greetings,
Rafael

  reply	other threads:[~2007-05-05 17:50 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 [this message]
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
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=200705051950.18318.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --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