Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: frank.hofmann@tomtom.com (Frank Hofmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v4] ARM hibernation/suspend-to-disk support
Date: Thu, 9 Jun 2011 17:53:53 +0100 (BST)	[thread overview]
Message-ID: <alpine.DEB.2.00.1106091752210.11513@localhost6.localdomain6> (raw)
In-Reply-To: <20110609165029.GC24424@n2100.arm.linux.org.uk>



On Thu, 9 Jun 2011, Russell King - ARM Linux wrote:

> On Tue, Jun 07, 2011 at 05:48:17PM +0100, Frank Hofmann wrote:
>> 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.
>
> Another issue is that it uses PHYS_OFFSET in assembly code which is not
> permissible with P2V patching.
>

Would calling something like:

unsigned long __swsusp_arch_get_vpoffset(void *addr)
{
         return (virt_to_phys(addr) - (unsigned long)addr);
}

from the assembly be ok ?

(That's what I've gone for at the moment to address this; a generic func 
somewhere to query for this would obviously be ok as well)

FrankH.

      reply	other threads:[~2011-06-09 16:53 UTC|newest]

Thread overview: 25+ 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 ` [linux-pm] " Rafael J. Wysocki
2011-06-09 15:30   ` Frank Hofmann
2011-06-09 15:40     ` Russell King - ARM Linux
2011-06-09 16:26       ` Frank Hofmann
2011-06-09 16:35         ` Santosh Shilimkar
2011-06-09 17:07           ` Frank Hofmann
2011-06-09 17:10             ` Santosh Shilimkar
2011-06-09 17:14             ` Russell King - ARM Linux
2011-06-09 16:27       ` Santosh Shilimkar
2011-06-09 16:40         ` Russell King - ARM Linux
2011-06-09 16:53           ` Santosh Shilimkar
2011-06-09 17:12             ` Russell King - ARM Linux
2011-06-09 17:21               ` Santosh Shilimkar
2011-06-09 17:53               ` Russell King - ARM Linux
2011-06-21 10:11                 ` Russell King - ARM Linux
2011-06-10 12:22               ` 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:54                       ` Frank Hofmann
2011-06-09 16:44         ` Frank Hofmann
2011-06-09 16:56           ` Santosh Shilimkar
2011-06-09 16:50 ` Russell King - ARM Linux
2011-06-09 16:53   ` Frank Hofmann [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=alpine.DEB.2.00.1106091752210.11513@localhost6.localdomain6 \
    --to=frank.hofmann@tomtom.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox