System suspend (short version) Pavel Machek, SUSE Labs 7/4/2018
Suspend to RAM a.k.a. S3 we have enough kernel support that it works on most machines, with exception of video ugly hacks were developed to fix video better keep them in userland suspend.sf.net tries to integrate them in easy-to-use package being easy-to-use introduced problems on lots of strange machines, Stefan Seyfried is working with users on expanding whitelist. contains DMI-based whitelist of notebooks
Using suspend to RAM ./s2ram If it does not work, see opensuse website for nice troubleshooting guide. what to do with desktops? Match both DMI and PCI ID of the video card? What about multihead setups? fortunately (?) it seems that noone cares HAL integration?
Brief history 'Software suspend' or 'Swap suspend' Swsusp * suspend-to-disk done by linux kernel, does not need BIOS support * originally for 2.4.X by Gabor Kuti * Nigel forked suspend2 * I created proof-of-concept uswsusp-like patches in late 2006 * Rafael added uswsusp in 2.6.17-rc1
Swsusp Very simple, in-kernel implementation Can use swap partition (no need for dedicated partition) Faster than BIOS suspend-to-disk (but slower than suspend2/uswsusp) Supports SMP, HIGHMEM, etc i386, x86-64, frv, ppc32 optionaly saves up to 50% of memory (including caches) stable: SUSE ships/supports it (in openSUSE <= 10.1) Fedora ships it still possible to shoot yourself into the foot, fortunately distros make it hard
Nigel's suspend2 All the features possible, and then some more Up to 100% of memory saved Encryption, compression support Can suspend to regular file and swapfile Bootsplash integration, esc aborts suspend Complex 14K LoC of kernel code Homebrew plugins support UI in kernel Fortunately (?) I scared Nigel away by now?
uSwsusp Allows userland to do all the hard work Kernel only exports low-level functions This allows to keep kernel complexity low (~1K LoC) while retaining flexibility Userland code available at suspend.sf.net Supports compression, encryption (password only asked during resume), suspend to file (slightly hacky, -mm?) Abort by key, bootsplash support Suspending over network should be doable without kernel patches
Suspend to both uSwsusp enables us to support „store image on disk, then suspend to RAM“ gets you fast resume, without risk of loosing data when battery runs flat Experimental, but quite simple Relies on s2ram being single binary