From: matthieu.castet@parrot.com (Matthieu CASTET)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH v5] ARM hibernation / suspend-to-disk (fwd)
Date: Tue, 5 Jul 2011 19:09:19 +0200 [thread overview]
Message-ID: <4E13453F.1000009@parrot.com> (raw)
In-Reply-To: <2C577202CB5719438D4E9608C565CB2C01B69D7F@NL-EXC-07.intra.local>
Frank Hofmann a ?crit :
> -----Original Message-----
> From: Matthieu CASTET [mailto:matthieu.castet at parrot.com]
> Frank Hofmann a ?crit :
>> [ ... ]
>> > +static void notrace __swsusp_arch_restore_image(void)
>> > +{
>> > + extern struct pbe *restore_pblist;
>> > + struct pbe *pbe;
>> > +
>> > + cpu_switch_mm(swapper_pg_dir, &init_mm);
>> > +
>> > + for (pbe = restore_pblist; pbe; pbe = pbe->next)
>> > + copy_page(pbe->orig_address, pbe->address);
>> > +
>>
>> One question : isn't dangerous to modify the code where we are running ?
>>
>> I believe the code shouldn't change too much between the kernel that
> do the
>> resume and the resumed kernel and the copy routine should fit in the
> instruction
>> cache, but I want to be sure it doesn't cause any problem on recent
> arm cores
>> (instruction prefetching , ...)
>>
>>
>> Matthieu
>
> Hi Matthieu,
>
> this isn't new behaviour to _this_ rev of the patch ...
yes
>
> and yes, it is dangerous to modify code where you're running. Except
> that this isn't happening in the current environment;
You are modifying it by putting the same code (modulo dynamic patching on the
code (ftrace, kprobe, ...)).
> If you're resuming via some other
> mechanism but the kernel's snapshot image loading code (and only jump
> into swsusp_arch_resume to kickstart resume) then it's up to you how you
> get the kernel text into place.
Yes.
> I've not experimented with resuming "foreign" images; how would one
> create such, and bypass the checks on load ?
I wasn't suggesting that.
>
> It's less of a problem for the copy loop itself, really, as that's
> definitely cache-hot. But it's an issue for what happens _after_ the
> copy loop. If the code for cpu_resume / cpu_reset is not at the places
> where the resum-ing code expects it to be (i.e. if there's a mismatch in
> the resuming and to-be-resumed kernels wrt. to that), then things will
> jump to code nirvana.
>
> Why are you asking about this ?
While reading the code I was surprised of that. And that there weren't any
comment about it.
Looking at other implementations, only x86_64 seems to need to relocate the copy
code.
Matthieu
next prev parent reply other threads:[~2011-07-05 17:09 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-13 12:04 [RFC PATCH v5] ARM hibernation / suspend-to-disk (fwd) Frank Hofmann
2011-06-13 12:26 ` Russell King - ARM Linux
2011-06-13 12:40 ` Frank Hofmann
2011-06-13 13:20 ` Frank Hofmann
2011-06-13 13:56 ` Dave Martin
2011-06-13 13:56 ` Dave Martin
2011-06-13 15:34 ` Frank Hofmann
2011-06-13 15:34 ` Frank Hofmann
2011-06-13 16:11 ` Frank Hofmann
2011-06-13 16:11 ` Frank Hofmann
2011-06-13 16:44 ` Russell King - ARM Linux
2011-06-15 13:35 ` Frank Hofmann
2011-06-16 21:31 ` Russell King - ARM Linux
2011-06-20 12:32 ` Frank Hofmann
2011-06-21 14:35 ` Russell King - ARM Linux
2011-06-29 14:52 ` Matthieu CASTET
2011-06-29 15:14 ` Frank Hofmann
2011-06-29 20:08 ` Will Deacon
2011-07-05 12:37 ` Matthieu CASTET
[not found] ` <2C577202CB5719438D4E9608C565CB2C01B69D7F@NL-EXC-07.intra.local>
2011-07-05 17:09 ` Matthieu CASTET [this message]
2011-09-30 7:48 ` Barry Song
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=4E13453F.1000009@parrot.com \
--to=matthieu.castet@parrot.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 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.