From: rjw@sisk.pl (Rafael J. Wysocki)
To: linux-arm-kernel@lists.infradead.org
Subject: [linux-pm] [RFC PATCH v4] ARM hibernation/suspend-to-disk support
Date: Tue, 7 Jun 2011 23:48:44 +0200 [thread overview]
Message-ID: <201106072348.44624.rjw@sisk.pl> (raw)
In-Reply-To: <alpine.DEB.2.00.1106071722040.2236@localhost6.localdomain6>
On Tuesday, June 07, 2011, Frank Hofmann wrote:
> Hi,
>
> time for another round on this one...
>
> This got quite a bit cleaned up now.
>
> There's now no more need for a "swsusp context" at all. The code uses
> cpu_suspend/resume and keeps the snapshot state on the stack while
> writing it out.
>
> There are a few dependencies this patch brings in:
>
> * due to the use of cpu_suspend / cpu_resume, it'll only apply as-is
> to kernels no older than f6b0fa02e8b0708d17d631afce456524eadf87ff,
> where Russell King introduced the generic interface.
> Patching these into older kernels is a little work.
>
> * it temporarily uses swapper_pg_dir and establishes 1:1 mappings there
> for a MMU-off transition, which is necessary before resume.
> In order to tear these down afterwards, identity_mapping_del() needs
> to be called; for some reason that's #ifdef CONFIG_SMP ...
>
> * it needs to "catch" sleep_save_sp after cpu_suspend() so that resume
> can be provided with the proper starting point.
> This requires an ENTRY(sleep_save_sp) in arch/arm/kernel/sleep.S so
> that the symbol becomes public.
>
> * it assumes cpu_reset will disable the MMU. cpu_v6_reset/cpu_v7_reset
> are currently not doing so (amongst some other minor chip types).
>
> * there's kind of a circular dependency between CONFIG_HIBERNATION and
> CONFIG_PM_SLEEP, on ARM. The latter is necessary so that cpu_suspend
> and cpu_resume are compiled in, but it cannot be selected via
> ARCH_HIBERNATION_POSSIBLE because CONFIG_PM_SLEEP depends on
> CONFIG_HIBERNATION_INTERFACE - selected by CONFIG_HIBERNATION.
>
> Consequence is that right now, both CONFIG_PM_SLEEP and ...HIBERNATION
> must be set in your defconfig file to be able to compile.
In fact, CONFIG_PM_SLEEP = CONFIG_SUSPEND || CONFIG_HIBERNATE_CALLBACKS, so it
should be sufficient to set HIBERNATION. ARCH_HIBERNATION_POSSIBLE only
causes HIBERNATION to become a valid option (that may or may not be set).
> (my head swirls from writing this ...)
What problem exactly did you have with those settings?
Rafael
next prev parent reply other threads:[~2011-06-07 21:48 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-07 16:48 [RFC PATCH v4] ARM hibernation/suspend-to-disk support Frank Hofmann
2011-06-07 21:48 ` Rafael J. Wysocki
2011-06-07 21:48 ` Rafael J. Wysocki [this message]
2011-06-09 15:30 ` [linux-pm] " Frank Hofmann
2011-06-09 15:40 ` Russell King - ARM Linux
2011-06-09 16:26 ` Frank Hofmann
2011-06-09 16:26 ` [linux-pm] " Frank Hofmann
2011-06-09 16:35 ` Santosh Shilimkar
2011-06-09 16:35 ` [linux-pm] " Santosh Shilimkar
2011-06-09 17:07 ` Frank Hofmann
2011-06-09 17:10 ` Santosh Shilimkar
2011-06-09 17:10 ` Santosh Shilimkar
2011-06-09 17:14 ` [linux-pm] " Russell King - ARM Linux
2011-06-09 17:14 ` Russell King - ARM Linux
2011-06-09 17:07 ` Frank Hofmann
2011-06-09 16:27 ` [linux-pm] " Santosh Shilimkar
2011-06-09 16:40 ` Russell King - ARM Linux
2011-06-09 16:40 ` [linux-pm] " Russell King - ARM Linux
2011-06-09 16:53 ` Santosh Shilimkar
2011-06-09 16:53 ` [linux-pm] " Santosh Shilimkar
2011-06-09 17:12 ` Russell King - ARM Linux
2011-06-09 17:21 ` Santosh Shilimkar
2011-06-09 17:21 ` Santosh Shilimkar
2011-06-09 17:53 ` [linux-pm] " Russell King - ARM Linux
2011-06-21 10:11 ` Russell King - ARM Linux
2011-06-21 10:11 ` [linux-pm] " Russell King - ARM Linux
2011-06-09 17:53 ` Russell King - ARM Linux
2011-06-10 12:22 ` [linux-pm] " Frank Hofmann
2011-06-10 13:43 ` Russell King - ARM Linux
2011-06-10 13:47 ` Frank Hofmann
2011-06-10 14:02 ` Russell King - ARM Linux
2011-06-10 14:02 ` [linux-pm] " Russell King - ARM Linux
2011-06-10 14:54 ` Frank Hofmann
2011-06-10 14:54 ` [linux-pm] " Frank Hofmann
2011-06-10 13:47 ` Frank Hofmann
2011-06-10 13:43 ` Russell King - ARM Linux
2011-06-10 12:22 ` Frank Hofmann
2011-06-09 17:12 ` Russell King - ARM Linux
2011-06-09 16:44 ` Frank Hofmann
2011-06-09 16:44 ` [linux-pm] " Frank Hofmann
2011-06-09 16:56 ` Santosh Shilimkar
2011-06-09 16:56 ` Santosh Shilimkar
2011-06-09 16:27 ` Santosh Shilimkar
2011-06-09 15:40 ` Russell King - ARM Linux
2011-06-09 15:30 ` Frank Hofmann
2011-06-09 16:50 ` Russell King - ARM Linux
2011-06-09 16:50 ` Russell King - ARM Linux
2011-06-09 16:53 ` Frank Hofmann
2011-06-09 16:53 ` Frank Hofmann
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=201106072348.44624.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=linux-arm-kernel@lists.infradead.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.