public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Pavel Machek <pavel@ucw.cz>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	Pekka Enberg <penberg@cs.helsinki.fi>,
	linux-pm@lists.linux-foundation.org,
	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: Wed, 2 May 2007 15:43:59 +0200	[thread overview]
Message-ID: <200705021544.00349.rjw@sisk.pl> (raw)
In-Reply-To: <20070502091633.GA10245@elf.ucw.cz>

On Wednesday, 2 May 2007 11:16, Pavel Machek wrote:
> Hi!
> 
> > > Well, having a look on the ACPI spec I'm thinking that what we're trying to do
> > > with this patch is actually wrong.
> > 
> > No idea :)
> > 
> > > Instead, we should rip off all of the invocations of pm_ops->whatever() from
> > > the hibernation code paths (with the below exceptions) and *if* the platform
> > > method is to be used, call pm_ops to make the system go down, in the following
> > > way:
> > > 1) call pm_ops->prepare(PM_SUSPEND_DISK)
> > > 2) suspend devices (ie. call device_suspend() etc.)
> > > 3) call pm_ops->enter(PM_SUSPEND_DISK)
> > > and if that *fails* (ie. pm_ops->enter() returns):
> > > 4) call pm_ops->finish(PM_SUSPEND_DISK)
> > > 5) halt the system
> > 
> > Can we still split that off to another method so we don't use pm_ops? No
> > matter how we invoke hibernation_ops or in what order, imho we shouldn't
> > use pm_ops.
> 
> Well... the powerdown during hibernation... does not have _anything_
> to do with snapshot/restore.

Agreed.

> It is really a very deep sleep; similar to soft powerdown, but not quite.

Yeah, not quite.  For example, we may want to use some devices for waking up
the system, but with the current code it's impossible, because pm_ops->finish()
disables this capability of devices.

I think we shouldn't confuse the quiescing of devices before the image creation
with a power transition.  This is not a power transition, since it's not
completed by calling pm_ops->enter().  Instead, we kinda-sorta abort it with
pm_ops->finish() which confuses the heck out of the ACPI firmware (please
see my reply to Alexey in the same thread for a detailed analysis).

> So this usage of pm_ops seems ok.

To me, it doesn't.  These are the main problems I see with it:
1) device_suspend() should be called before the _PTS method is executed (IMO
it's correct not to execute _PTS at all if we don't want to do a real power
transition)
2) The _GTS method shouldn't be executed in acpi_pm_prepare(), but instead
should be executed in acpi_pm_enter(), right before the transition is completed
3) The _BFS method shouldn't be executed in the resume-during-hibernation
code path
4) The wake-up capability of devices should be enabled before we execute
pm_ops->enter() and shouldn't be enabled before the image creation (what for?).
5) The first part of 4) requires that the transition be started over after the
image has been saved.

Greetings,
Rafael

      parent reply	other threads:[~2007-05-02 13:43 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
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 [this message]

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=200705021544.00349.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 \
    /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