From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sebastian Capella Subject: [PATCH v9 0/2] hibernation support on ARM Date: Tue, 18 Mar 2014 14:40:56 -0700 Message-ID: <1395178858-27343-1-git-send-email-sebastian.capella@linaro.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linaro-kernel@lists.linaro.org, linux-arm-kernel@lists.infradead.org Cc: Konstantin Khlebnikov , Catalin Marinas , Will Deacon , Sricharan R , Pavel Machek , Steven Capper , Lorenzo Pieralisi , Stephen Warren , Nicolas Pitre , Stefano Stabellini , Ben Dooks , Russ Dill , =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= , Stephen Boyd , Jiang Liu , Len Brown , Laura Abbott , Victor Kamensky , Russell King , Thomas Gleixner , Jonathan Austin , "Rafael J. Wysocki" List-Id: linux-pm@vger.kernel.org CkNjOiBSdXNzIERpbGwgPFJ1c3MuRGlsbEB0aS5jb20+CkNjOiAiUmFmYWVsIEouIFd5c29ja2ki IDxyandAcmp3eXNvY2tpLm5ldD4KQ2M6IFJ1c3NlbGwgS2luZyA8bGludXhAYXJtLmxpbnV4Lm9y Zy51az4KQ2M6IFBhdmVsIE1hY2hlayA8cGF2ZWxAdWN3LmN6PgpDYzogTG9yZW56byBQaWVyYWxp c2kgPGxvcmVuem8ucGllcmFsaXNpQGFybS5jb20+CkNjOiBTdGVwaGVuIFdhcnJlbiA8c3dhcnJl bkBudmlkaWEuY29tPgpDYzogTGVuIEJyb3duIDxsZW4uYnJvd25AaW50ZWwuY29tPgpDYzogTmlj b2xhcyBQaXRyZSA8bmljb0BsaW5hcm8ub3JnPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRv c2guc2hpbGlta2FyQHRpLmNvbT4KQ2M6IFdpbGwgRGVhY29uIDx3aWxsLmRlYWNvbkBhcm0uY29t PgpDYzogSm9uYXRoYW4gQXVzdGluIDxqb25hdGhhbi5hdXN0aW5AYXJtLmNvbT4KQ2M6IENhdGFs aW4gTWFyaW5hcyA8Y2F0YWxpbi5tYXJpbmFzQGFybS5jb20+CkNjOiAiVXdlIEtsZWluZS1Lw7Zu aWciIDx1LmtsZWluZS1rb2VuaWdAcGVuZ3V0cm9uaXguZGU+CkNjOiBTdGVwaGVuIEJveWQgPHNi b3lkQGNvZGVhdXJvcmEub3JnPgpDYzogTGF1cmEgQWJib3R0IDxsYXVyYWFAY29kZWF1cm9yYS5v cmc+CkNjOiBKaWFuZyBMaXUgPGxpdWo5N0BnbWFpbC5jb20+CkNjOiBTcmljaGFyYW4gUiA8ci5z cmljaGFyYW5AdGkuY29tPgpDYzogVmljdG9yIEthbWVuc2t5IDx2aWN0b3Iua2FtZW5za3lAbGlu YXJvLm9yZz4KQ2M6IFN0ZWZhbm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGV1LmNp dHJpeC5jb20+CkNjOiBCZW4gRG9va3MgPGJlbi5kb29rc0Bjb2RldGhpbmsuY28udWs+CkNjOiBB bmRyZXcgTW9ydG9uIDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPgpDYzogVGhvbWFzIEdsZWl4 bmVyIDx0Z2x4QGxpbnV0cm9uaXguZGU+CkNjOiBSb2JpbiBIb2x0IDxyb2Jpbi5tLmhvbHRAZ21h aWwuY29tPgpDYzogS29uc3RhbnRpbiBLaGxlYm5pa292IDxrLmtobGVibmlrb3ZAc2Ftc3VuZy5j b20+CkNjOiBTdGV2ZW4gQ2FwcGVyIDxzdGV2ZS5jYXBwZXJAbGluYXJvLm9yZz4KQ2M6IFRlanVu IEhlbyA8dGpAa2VybmVsLm9yZz4KCgpQYXRjaGVzIGFkZGluZyBzdXBwb3J0IGZvciBoaWJlcm5h dGlvbiBvbiBBUk0KIC0gQVJNIGhpYmVybmF0aW9uIC8gc3VzcGVuZC10by1kaXNrCiAtIENoYW5n ZSBzb2Z0X3Jlc3RhcnQgdG8gdXNlIG5vbi10cmFjaW5nIHJhd19sb2NhbF9pcnFfZGlzYWJsZQoK UGF0Y2hlcyBiYXNlZCBvbiB2My4xNC1yYzcgdGFnLCB2ZXJpZmllZCBoaWJlcm5hdGlvbiBvbiBi ZWFnbGVib25lIGJsYWNrIG9uIGEKYnJhbmNoIGJhc2VkIG9uIDMuMTMgbWVyZ2VkIHdpdGggaW5p dGlhbCBvbWFwIHN1cHBvcnQgZnJvbSBSdXNzIERpbGwgd2hpY2gKY2FuIGJlIGZvdW5kIGhlcmUg KGluY2x1ZGVzIHYxIHBhdGNoc2V0KToKaHR0cDovL2dpdC5saW5hcm8ub3JnL2dpdC1yby9wZW9w bGUvc2ViYXN0aWFuLmNhcGVsbGEvbGludXguZ2l0IGhpYmVybmF0aW9uXzMuMTNfcnVzc01lcmdl CgpbUEFUQ0ggdjkgMS8yXSBBUk06IGF2b2lkIHRyYWNlcnMgaW4gc29mdF9yZXN0YXJ0CiBhcmNo L2FybS9rZXJuZWwvcHJvY2Vzcy5jIHwgICAgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspLCAxIGRlbGV0aW9uKC0pCgogVXNlIHJhd19sb2NhbF9pcnFfZGlzYWJsZSBpbiBwbGFj ZSBvZiBsb2NhbF9pcnFfZGlzYWJsZSB0byBhdm9pZAogaW5maW5pdGUgYWJvcnQgcmVjdXJzaW9u IHdoaWxlIHRyYWNpbmcuICh1bmNoYW5nZWQgc2luY2UgdjMpCgpbUEFUQ0ggdjkgMi8yXSBBUk0g aGliZXJuYXRpb24gLyBzdXNwZW5kLXRvLWRpc2sKIGFyY2gvYXJtL0tjb25maWcgICAgICAgICAg ICAgIHwgICAgNSArKwogYXJjaC9hcm0vaW5jbHVkZS9hc20vbWVtb3J5LmggfCAgICAxICsKIGFy Y2gvYXJtL2tlcm5lbC9NYWtlZmlsZSAgICAgIHwgICAgMSArCiBhcmNoL2FybS9rZXJuZWwvaGli ZXJuYXRlLmMgICB8ICAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysKIGluY2x1ZGUvbGludXgvc3VzcGVuZC5oICAgICAgIHwgICAgMiArCiA1IGZpbGVzIGNoYW5n ZWQsIDExNiBpbnNlcnRpb25zKCspCgogQWRkcyBzdXBwb3J0IGZvciBBUk0gYmFzZWQgaGliZXJu YXRpb24KCgpBZGRpdGlvbmFsIG5vdGVzOgotLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgYXJlIHR3 byBjaGVja3BhdGNoIHdhcm5pbmdzIGFkZGVkIGJ5IHRoaXMgcGF0Y2guICBUaGVzZSBmb2xsb3cK YmVoYXZpb3IgaW4gZXhpc3RpbmcgaGliZXJuYXRpb24gaW1wbGVtZW50YXRpb25zIG9uIG90aGVy IHBsYXRmb3Jtcy4KCgogICAgV0FSTklORzogZXh0ZXJucyBzaG91bGQgYmUgYXZvaWRlZCBpbiAu YyBmaWxlcwogICAgIzEzMTogRklMRTogYXJjaC9hcm0va2VybmVsL2hpYmVybmF0ZS5jOjI1Ogog ICAgK2V4dGVybiBjb25zdCB2b2lkIF9fbm9zYXZlX2JlZ2luLCBfX25vc2F2ZV9lbmQ7CgogIFRo aXMgZXh0ZXJuIGlzIHBpY2tpbmcgdXAgdGhlIGxpbmtlciBub3NhdmUgcmVnaW9uIGRlZmluaXRp b25zLCBvbmx5CiAgdXNlZCBpbiBoaWJlcm5hdGUuICBGb2xsb3dzIHNhbWUgZXh0ZXJuIGxpbmUg dXNlZCBtaXBzLCBwb3dlcnBjLCBzMzkwLAogIHNoLCBzcGFyYywgeDg2ICYgdW5pY29yZTMyCgog ICAgV0FSTklORzogZXh0ZXJucyBzaG91bGQgYmUgYXZvaWRlZCBpbiAuYyBmaWxlcwogICAgIzIw OTogRklMRTogYXJjaC9hcm0va2VybmVsL2hpYmVybmF0ZS5jOjEwMzoKICAgICsJZXh0ZXJuIHZv aWQgY2FsbF93aXRoX3N0YWNrKHZvaWQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB2b2lkICpz cCk7CgogIFRoaXMgZXh0ZXJuIGlzIHVzZWQgaW4gdGhlIGFyY2gvYXJtLyBpbiBoaWJlcm5hdGUs IHByb2Nlc3MgYW5kIGJMX3N3aXRjaGVyCgoKQ2hhbmdlcyBpbiB2OToKLS0tLS0tLS0tLS0tLS0K KiByZXBsYWNlIHBmbiBjYWxjdWxhdGlvbndpdGggdmlydF90b19wZm4KKiBhdXRvbWF0aWNhbGx5 IGFsbG93IEFSQ0hfSElCRVJOQVRJT05fUE9TU0lCTEUgaWYgU1VTUEVORCBwZXJtaXR0ZWQKKiBt b3ZlIGhhbmRsaW5nIG9mIEFSQ0ggY29uZmlnIGZsYWcgdG8gYXJjaC9hcm0vS2NvbmZpZwoKQ2hh bmdlcyBpbiB2ODoKLS0tLS0tLS0tLS0tLS0KKiByZW1vdmUgZGVmaW5pdGlvbiBhbmQgdXNlIG9m IF9fcGFfc3ltYm9sCgpDaGFuZ2VzIGluIHY3OgotLS0tLS0tLS0tLS0tLQoqIHJlbW92ZSB1c2Ug b2YgUkVMT0NfSElERSBtYWNybwoqIHJlbW92ZSB1bnVzZWQgI2luY2x1ZGVzCiogZml4dXAgY29t bWVudCBmb3IgYXJjaF9yZXN0b3JlX2ltYWdlCiogZW5zdXJlIGFsaWdubWVudCBvZiByZXN1bWUg c3RhY2sgb24gOCBieXRlIGJvdW5kYXJ5CgpDaGFuZ2VzIGluIHY2OgotLS0tLS0tLS0tLS0tLQoq IFNpbXBsaWZ5IHN0YXRpYyB2YXJpYWJsZSBuYW1lcwoKQ2hhbmdlcyBpbiB2NToKLS0tLS0tLS0t LS0tLS0KKiBGaXhlZCBjaGVja3BhdGNoIHdhcm5pbmcgb24gdHJhaWxpbmcgd2hpdGVzcGFjZQoK Q2hhbmdlcyBpbiB2NDoKLS0tLS0tLS0tLS0tLS0KKiB1cGRhdGVkIGNvbW1lbnQgZm9yIHNvZnRf cmVzdGFydCB3aXRoIHJldmlldyBmZWVkYmFjawoqIGRyb3BwZWQgZnJlZXplX3Byb2Nlc3NlcyBw YXRjaCB3aGljaCB3YXMgcXVldWVkIHNlcGFyYXRlbHkgCiAgdG8gMy4xNCBieSBSYWZhZWwgV3lz b2NraToKICBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxNC8yLzI1LzY4MwoKQ2hhbmdlcyBpbiB2 MzoKLS0tLS0tLS0tLS0tLS0KKiBhZGRlZCBjb21tZW50IHRvIHVzZSBvZiBzb2Z0X3Jlc3RhcnQK KiBkcm9wIGlycSBkaXNhYmxlIHNvZnRfcmVzdGFydCBwYXRjaAoqIGFkZCBwYXRjaCB0byBhdm9p ZCB0cmFjZXJzIGluIHNvZnRfcmVzdGFydCBieSB1c2luZyByYXdfbG9jYWxfaXJxXyoKCkNoYW5n ZXMgaW4gdjI6Ci0tLS0tLS0tLS0tLS0tCiogUmVtb3ZlZCB1bm5lZWRlZCBmbHVzaF90aHJlYWQs IHVzZSBvZiBfX25ha2VkIGFuZCBjcHVfaW5pdC4KKiBkcm9wcGVkIEN5cmlsIENoZW1wYXJhdGh5 IDxjeXJpbEB0aS5jb20+IGZyb20gQ2M6IGxpc3QgYXMgCiAgZW1haWxzIGFyZSBib3VuY2luZy4K ClRoYW5rcywKClNlYmFzdGlhbiBDYXBlbGxhCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: sebastian.capella@linaro.org (Sebastian Capella) Date: Tue, 18 Mar 2014 14:40:56 -0700 Subject: [PATCH v9 0/2] hibernation support on ARM Message-ID: <1395178858-27343-1-git-send-email-sebastian.capella@linaro.org> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Cc: Russ Dill Cc: "Rafael J. Wysocki" Cc: Russell King Cc: Pavel Machek Cc: Lorenzo Pieralisi Cc: Stephen Warren Cc: Len Brown Cc: Nicolas Pitre Cc: Santosh Shilimkar Cc: Will Deacon Cc: Jonathan Austin Cc: Catalin Marinas Cc: "Uwe Kleine-K?nig" Cc: Stephen Boyd Cc: Laura Abbott Cc: Jiang Liu Cc: Sricharan R Cc: Victor Kamensky Cc: Stefano Stabellini Cc: Ben Dooks Cc: Andrew Morton Cc: Thomas Gleixner Cc: Robin Holt Cc: Konstantin Khlebnikov Cc: Steven Capper Cc: Tejun Heo Patches adding support for hibernation on ARM - ARM hibernation / suspend-to-disk - Change soft_restart to use non-tracing raw_local_irq_disable Patches based on v3.14-rc7 tag, verified hibernation on beaglebone black on a branch based on 3.13 merged with initial omap support from Russ Dill which can be found here (includes v1 patchset): http://git.linaro.org/git-ro/people/sebastian.capella/linux.git hibernation_3.13_russMerge [PATCH v9 1/2] ARM: avoid tracers in soft_restart arch/arm/kernel/process.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Use raw_local_irq_disable in place of local_irq_disable to avoid infinite abort recursion while tracing. (unchanged since v3) [PATCH v9 2/2] ARM hibernation / suspend-to-disk arch/arm/Kconfig | 5 ++ arch/arm/include/asm/memory.h | 1 + arch/arm/kernel/Makefile | 1 + arch/arm/kernel/hibernate.c | 107 +++++++++++++++++++++++++++++++++++++++++ include/linux/suspend.h | 2 + 5 files changed, 116 insertions(+) Adds support for ARM based hibernation Additional notes: ----------------- There are two checkpatch warnings added by this patch. These follow behavior in existing hibernation implementations on other platforms. WARNING: externs should be avoided in .c files #131: FILE: arch/arm/kernel/hibernate.c:25: +extern const void __nosave_begin, __nosave_end; This extern is picking up the linker nosave region definitions, only used in hibernate. Follows same extern line used mips, powerpc, s390, sh, sparc, x86 & unicore32 WARNING: externs should be avoided in .c files #209: FILE: arch/arm/kernel/hibernate.c:103: + extern void call_with_stack(void (*fn)(void *), void *arg, void *sp); This extern is used in the arch/arm/ in hibernate, process and bL_switcher Changes in v9: -------------- * replace pfn calculationwith virt_to_pfn * automatically allow ARCH_HIBERNATION_POSSIBLE if SUSPEND permitted * move handling of ARCH config flag to arch/arm/Kconfig Changes in v8: -------------- * remove definition and use of __pa_symbol Changes in v7: -------------- * remove use of RELOC_HIDE macro * remove unused #includes * fixup comment for arch_restore_image * ensure alignment of resume stack on 8 byte boundary Changes in v6: -------------- * Simplify static variable names Changes in v5: -------------- * Fixed checkpatch warning on trailing whitespace Changes in v4: -------------- * updated comment for soft_restart with review feedback * dropped freeze_processes patch which was queued separately to 3.14 by Rafael Wysocki: https://lkml.org/lkml/2014/2/25/683 Changes in v3: -------------- * added comment to use of soft_restart * drop irq disable soft_restart patch * add patch to avoid tracers in soft_restart by using raw_local_irq_* Changes in v2: -------------- * Removed unneeded flush_thread, use of __naked and cpu_init. * dropped Cyril Chemparathy from Cc: list as emails are bouncing. Thanks, Sebastian Capella