From mboxrd@z Thu Jan 1 00:00:00 1970 From: khilman@baylibre.com (Kevin Hilman) Date: Tue, 02 Feb 2016 16:42:20 -0800 Subject: [PATCH v4 00/13] arm64: kernel: Add support for hibernate/suspend-to-disk In-Reply-To: <56AF1D07.3000604@arm.com> (James Morse's message of "Mon, 01 Feb 2016 08:53:27 +0000") References: <1453977766-20907-1-git-send-email-james.morse@arm.com> <7hvb6chv5e.fsf@baylibre.com> <56AF1D07.3000604@arm.com> Message-ID: <7hmvrid3pv.fsf@baylibre.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org James Morse writes: > On 29/01/16 22:34, Kevin Hilman wrote: >> James Morse writes: >> I'd like to help in testing this so I'm just curious which platforms >> you've been testing this on. I'm assuming a Juno (r2?), anything else? > > That would be great - thanks! > > I've done most of the testing on a Juno r1, but also gave it a spin on a > stray Seattle. OK, I'm using a very recently arrived Juno R2, and I did get it working. I have a few other arm64 boards around that ar part of kernelci.org and will try those as well. >> Are you testing the resume from cold boot, or just from kexec? > > From cold boot. I haven't tried with kexec, but I doubt that's a use-case anyone > wants as you would resume immediately. (might be interesting for testing though) > > >> For cold boot on Juno, I'm assuming there would be some >> booloader/firmware changes needed to find and boot from the hibernation >> image? > > Not at all! Your firmware only needs to support some mechanism to > turning CPUs off. > > If you add 'resume=/dev/sda2' (or wherever your swap partition is located), the > kernel will check this partition for the hibernate-image signature, if found, it > will resume from that partition. Otherwise booting is as normal. (there is one > hoop to jump through to ensure your rootfs hasn't been mounted before the kernel > starts resume, as you could corrupt it - an initramfs in the kernel is the best > fix for this). > > No firmware changes needed. > >> Is that being worked on? If not Juno, are you aware of any >> other platforms that could be tested with resume from cold boot? > > Any arm64 platform with persistent storage should work. I've been using a swap > partition on a usb drive. >> Not knowing the answers to the above, I tested your branch using arm64 >> defconfig + CONFIG_HIBERNATION=y on my Juno and noticed that it didn't >> stay suspended (full suspend log below) so I'm looking for >> ideas/recommenations on how to test this. > > That trace looks quite normal, (one of mine below[0] for comparison). Any > failure would have happened after the point you stopped ... did you have a swap > partition 'on'? I think I must have not setup swap correctly since after testing again it's working fine. Maybe I forgot the 'swapon'? In any case, being a little more careful, testing again and things are working fine on Juno. I'm also using swap on USB storage for now. > 'syscore' will freeze all processes and stop all devices, then create a > copy of the minimum amount of memory it needs to save. Then it starts > all the devices again, as it needs to write this image out to swap. This is what > you are seeing. > > Once it has done this it calls poweroff or reboot. Yeah, I wasn't seeing the call to poweroff, but most likely because it was failing to fully write the image due to my missing/incorrect swap setup. Thanks for the help, Kevin