From: dave.martin@linaro.org (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH] ARM hibernation / suspend-to-disk support code
Date: Mon, 23 May 2011 10:42:30 +0100 [thread overview]
Message-ID: <20110523094230.GA2370@arm.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1105201703260.8018@localhost6.localdomain6>
On Fri, May 20, 2011 at 05:24:05PM +0100, Frank Hofmann wrote:
> On Fri, 20 May 2011, Dave Martin wrote:
>
> [ ... ]
> >>I've simply done there what the "setmode" macro from
> >><asm/assembler.h> is doing, have chosen not to include that file
> >>because it overrides "push" on a global scale for no good reason and
> >>that sort of thing makes me cringe.
> >
> >Actually, I guess you should be using that header, from a general
> >standardisation point of view. In particular, it would be nicer to
> >use setmode than to copy it.
> >
> >The setmode macro itself could be improved to use cps for Thumb-2,
> >but that would be a separate (and low-priority) patch.
> >
> >
> >Re the push/pop macros, I'm not sure of the history for those.
>
> arch/arm/lib are the only users.
>
> >
> >In the kernel, it seems customary to write stmfd sp!, / ldmfd sp!,
> >instead of push / pop, so you could always use those mnemonics instead.
> >They're equivalent.
>
> The "customary" seems largely a consequence of having the #define in
> <asm/assembler.h> as you get a compile error if you use push/pop as
> instruction.
>
> I've made the change to "setmode" and stmfd/ldmfd, ok.
>
> [ ... ]
> >I think I agree. Few drivers use FIQ, and if there are drivers
> >which use FIQ but don't implement suspend/resume hooks, that sounds
> >like a driver bug.
> >
> >Assuming nobody disagrees with that conclusion, it would be a good
> >idea to stick a comment somewhere explaining that policy.
>
> <speak up or remain silent forever> ;-)
>
> Since the change which moved get/set_fiq_regs() to pure assembly has
> just gone in, would a simple comment update in the header file along
> those lines be sufficient ?
Gone in where?
I haven't submitted my patch to Russell's patch system yet, but it
takes into account earlier discussions and there have been no major
disagreements, so I will submit it if it is not superseded.
> I.e. state "do not assume persistence of these registers over power
> mgmt transitions - if that's what you require, implement suspend /
> resume hooks" ?
>
> >
> >>
> >>See also Russell's mails about that, for previous attempts a year
> >>and half a year ago to get "something for ARM hibernation" in:
> >>
> >>https://lists.linux-foundation.org/pipermail/linux-pm/2010-July/027571.html
> >>https://lists.linux-foundation.org/pipermail/linux-pm/2010-December/029665.html
> >
> >Relying on drivers to save/restore the FIQ state if necessary seems
> >to correspond to what Russell is saying in his second mail.
>
> Agreed, and largely why I haven't bothered touching FIQ.
>
> >
> >>
> >>The kernel doesn't do IRQ/FIQ/ABT/UND save / restore for
> >>suspend-to-ram either. CPU hotplug support (re)initializes those. I
> >>believe we're fine.
> >
> >OK, just wanted to make sure I understood that right.
>
> By and large, "if suspend-to-ram works, suspend-to-disk should too"
> seems a good idea; if the former doesn't (need to) save/restore such
> state even though it's not off-mode-persistent, then the latter
> doesn't need either.
>
> That said, I've seen (out-of-tree) SoC-specific *suspend() code that
> simply blotted everything out. Seems the most trivial way to go, but
> not necessarily the best.
>
> >
> >I'll leave it to others to comment on the actual SoC-specific routines,
> >but thanks for the illustration.
>
> To make this clear, I'm not personally considering these parts
> optimal as the attached patch is doing them.
>
> That's why preferrably, only the "enabler" code should go in first.
>
> I do wonder, though, whether the machine maintainers are willing to
> make the change to these low-level suspend parts that'd split chip
> state save/restore from the actual power transition. That'd allow to
> turn this from a "backdoor" into a proper use of the interface.
>
> Russell has made the change to pass the context buffer as argument,
> but not split the power transition off; things are getting there,
> eventually :)
>
> >
> >Cheers
> >---Dave
>
> Thanks again,
> FrankH.
next prev parent reply other threads:[~2011-05-23 9:42 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <3DCE2F529B282E4B8F53D4D8AA406A07014FFE@008-AM1MPN1-022.mgdnok.nokia.com>
2011-05-19 17:31 ` [RFC PATCH] ARM hibernation / suspend-to-disk support code Frank Hofmann
2011-05-20 11:37 ` Dave Martin
2011-05-20 12:39 ` Frank Hofmann
2011-05-20 15:03 ` Dave Martin
2011-05-20 16:24 ` Frank Hofmann
2011-05-23 9:42 ` Dave Martin [this message]
2011-05-20 17:53 ` Nicolas Pitre
2011-05-20 18:07 ` Russell King - ARM Linux
2011-05-20 22:27 ` [linux-pm] " Rafael J. Wysocki
2011-05-22 7:01 ` Frank Hofmann
2011-05-22 9:54 ` Rafael J. Wysocki
2011-05-23 9:52 ` Dave Martin
2011-05-23 13:37 ` Frank Hofmann
2011-05-23 14:32 ` Russell King - ARM Linux
2011-05-23 15:57 ` [RFC PATCH v2] " Frank Hofmann
2011-05-20 18:05 ` [RFC PATCH] " Russell King - ARM Linux
2011-05-23 10:01 ` Dave Martin
2011-05-23 10:12 ` Russell King - ARM Linux
2011-05-23 11:16 ` Dave Martin
2011-05-23 16:11 ` Russell King - ARM Linux
2011-05-23 16:38 ` Dave Martin
2011-05-24 12:33 ` 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=20110523094230.GA2370@arm.com \
--to=dave.martin@linaro.org \
--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;
as well as URLs for NNTP newsgroup(s).