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>, Johannes Berg <johannes@sipsolutions.net>
Cc: linux-pm@lists.linux-foundation.org
Subject: Re: [PATCH v4] pm_ops: add system quiesce/activate hooks
Date: Sat, 14 Apr 2007 00:09:32 +0200	[thread overview]
Message-ID: <200704140009.33298.rjw@sisk.pl> (raw)
In-Reply-To: <20070413213349.GL28264@elf.ucw.cz>

On Friday, 13 April 2007 23:33, Pavel Machek wrote:
> On Fri 2007-04-13 23:18:05, Johannes Berg wrote:
> > On Fri, 2007-04-13 at 23:12 +0200, Pavel Machek wrote:
> > 
> > 
> > > > Whoops, I had that in an earlier version, it's not supposed to be called
> > > > for (u)swsusp because pm_ops involvement there is a hack anyway. I'll
> > > > fix the description.
> > > 
> > > But (u)swsusp needs to shut down the devices, and it does both suspend
> > > and powerdown, too...?
> > 
> > Yes, but the special S4 state is just hacked onto pm_ops, nothing but
> > ACPI S4 will ever sanely use pm_ops. If I'd invented pm_ops I'd made
> > pm_ops solely for suspend to ram/standby/... and added a *separate* hook
> > for pm_disk_mode and S4 because logically that really doesn't belong to
> > pm_ops which does almost exclusively things for suspend to ram/standby.
> 
> Still, swsusp shuts down the devices:
> 
>         if ((error = arch_prepare_suspend()))
>                 return error;
> 
>         local_irq_disable();
>         /* At this point, device_suspend() has been called, but *not*
>          * device_power_down(). We *must* device_power_down() now.
>          * Otherwise, drivers for some devices (e.g. interrupt
> controllers)
>          * become desynchronized with the actual state of the hardware
>          * at resume time, and evil weirdness ensues.
>          */
>         if ((error = device_power_down(PMSG_FREEZE))) {
>                 printk(KERN_ERR "Some devices failed to power down, aborting suspend\n");
>                 goto Enable_irqs;
>         }
> 
> This local_irq_disable() is very similar to the one you are doing in
> suspend-to-RAM. According to your description, it needs to play with
> the decrementor, too. But I'd really prefer not to have pm_ops call
> here -- exactly because swsusp has nothing to do with pm_ops in
> shutdown mode.

Hmm, I missed that. :-(

I think we need to make things clear: Either we add the additional hooks to
pm_ops in which case they should be taken into account in the (u)swsusp code
too, or we don't add them at all.

Well, there also is one more solution.  Namely, we can add the hooks to pm_ops
and make (u)swsusp use something else instead of pm_ops, but that would require
some more consideration.

Greetings,
Rafael

  parent reply	other threads:[~2007-04-13 22:09 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-05 21:54 [PATCH] pm_ops: add irq enable/disable hooks Johannes Berg
2007-04-05 23:30 ` Rafael J. Wysocki
2007-04-05 23:28   ` Johannes Berg
2007-04-06  0:02     ` Rafael J. Wysocki
2007-04-06  0:09       ` Johannes Berg
2007-04-06  0:17         ` Rafael J. Wysocki
2007-04-06  8:48           ` Johannes Berg
2007-04-06  9:41             ` Rafael J. Wysocki
2007-04-06  9:44               ` Johannes Berg
2007-04-06 10:02                 ` Rafael J. Wysocki
2007-04-06 10:00                   ` Johannes Berg
2007-04-06 19:19                 ` Pavel Machek
2007-04-06 21:59                   ` Johannes Berg
2007-04-10 11:36                     ` Pavel Machek
2007-04-10 11:45                       ` Johannes Berg
2007-04-10 12:00                         ` Pavel Machek
2007-04-10 13:42                           ` Johannes Berg
2007-04-11 11:22                           ` Benjamin Herrenschmidt
2007-04-11 14:07                             ` Alan Stern
2007-04-11 16:39                               ` Johannes Berg
2007-04-11 21:40                               ` Benjamin Herrenschmidt
2007-04-11 11:15                       ` Johannes Berg
2007-04-06 19:16 ` Pavel Machek
2007-04-11 15:54 ` [PATCH v2] pm_ops: add system quiesce/activate hooks Johannes Berg
2007-04-11 20:47   ` Dmitry Krivoschekov
2007-04-12  8:39     ` Johannes Berg
2007-04-12  8:42     ` Benjamin Herrenschmidt
2007-04-12 10:16       ` Pavel Machek
2007-04-12 10:45         ` Rafael J. Wysocki
2007-04-12 10:47         ` Johannes Berg
2007-04-13 21:00           ` Pavel Machek
2007-04-13 21:11             ` Paul Mackerras
2007-04-13 21:11             ` Johannes Berg
2007-04-13 21:43               ` Pavel Machek
2007-04-13 21:15             ` Benjamin Herrenschmidt
2007-04-12 11:23         ` Benjamin Herrenschmidt
2007-04-12 15:03           ` Rafael J. Wysocki
2007-04-12 16:32             ` David Brownell
2007-04-13  6:52               ` Johannes Berg
2007-04-13  7:59               ` [PATCH v3] " Johannes Berg
2007-04-12 17:36           ` [PATCH v2] " Dmitry Krivoschekov
2007-04-12 20:51             ` Benjamin Herrenschmidt
2007-04-13  6:54             ` Johannes Berg
2007-04-13  8:04               ` David Brownell
2007-04-13  8:59             ` Johannes Berg
2007-04-13  9:07               ` Benjamin Herrenschmidt
2007-04-13 11:47                 ` Rafael J. Wysocki
2007-04-13 12:58                   ` Johannes Berg
2007-04-13 13:26                   ` [PATCH v4] " Johannes Berg
2007-04-13 20:43                     ` Rafael J. Wysocki
2007-04-13 20:58                       ` Pavel Machek
2007-04-13 21:06                         ` Johannes Berg
2007-04-13 21:12                           ` Pavel Machek
2007-04-13 21:18                             ` Johannes Berg
2007-04-13 21:33                               ` Pavel Machek
2007-04-13 21:45                                 ` Johannes Berg
2007-04-13 21:52                                   ` Pavel Machek
2007-04-13 21:59                                     ` Johannes Berg
2007-04-13 22:18                                       ` Rafael J. Wysocki
2007-04-13 22:20                                         ` Johannes Berg
2007-04-13 22:49                                           ` Rafael J. Wysocki
2007-04-13 22:55                                             ` Johannes Berg
2007-04-13 22:09                                 ` Rafael J. Wysocki [this message]
2007-04-13 22:13                                   ` Johannes Berg
2007-04-13 22:16                                     ` Pavel Machek
2007-04-14 16:55                                       ` Paul Mackerras
2007-04-13 22:25                                   ` Benjamin Herrenschmidt
2007-04-13 22:39                                     ` Pavel Machek
2007-04-13 23:19                                       ` Benjamin Herrenschmidt
2007-04-14  9:14                                         ` Rafael J. Wysocki
2007-04-14  9:19                                           ` Johannes Berg
2007-04-15  0:19                                             ` Benjamin Herrenschmidt
2007-04-16  7:32                                         ` Pavel Machek
2007-04-16  8:37                                           ` Johannes Berg
2007-04-16 12:47                                             ` Pavel Machek
2007-04-17  4:58                                             ` Paul Mackerras
2007-04-18  7:50                                           ` Benjamin Herrenschmidt
2007-04-13 22:47                                     ` Rafael J. Wysocki
2007-04-13 21:18                             ` Benjamin Herrenschmidt
2007-04-13 21:56                               ` Pavel Machek
2007-04-13 22:01                                 ` Johannes Berg
2007-04-13 22:24                                 ` Benjamin Herrenschmidt
2007-04-13 21:15                         ` Benjamin Herrenschmidt
2007-04-13 21:50                           ` Pavel Machek
2007-04-13 22:23                             ` Benjamin Herrenschmidt
2007-04-14 22:10                               ` David Brownell
2007-04-13 21:05             ` [PATCH v2] " Pavel Machek
2007-04-12  8:44     ` Benjamin Herrenschmidt
2007-04-17 17:18 ` [PATCH] s2ram: add arch irq disable/enable hooks Johannes Berg
2007-04-18 11:27   ` Pavel Machek

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=200704140009.33298.rjw@sisk.pl \
    --to=rjw@sisk.pl \
    --cc=johannes@sipsolutions.net \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=pavel@ucw.cz \
    /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