[linux-pm] [PATCH -mm] PM: Change ordering of suspend and resume code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

As indicated in a recent thread on Linux-PM, it's necessary to call
pm_ops->finish() before devce_resume(), but enable_nonboot_cpus() has to be
called before pm_ops->finish()
(cf. http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html).
For consistency, it seems reasonable to call disable_nonboot_cpus() after
device_suspend().

This way the suspend code will remain symmetrical with respect to the resume
code and it may allow us to speed up things in the future by suspending and
resuming devices and/or saving the suspend image in many threads.

The following series of patches reorders the suspend and resume code so that
nonboot CPUs are disabled after devices have been suspended and enabled before
the devices are resumed.  It also causes pm_ops->finish() to be called after
enable_nonboot_cpus() wherever necessary.

The first patch changes the ordering of the suspend-to-RAM code and is
untested, because my boxes continue refusing to resume from RAM for other
reasons.  If anyone can, please do me a favour and test it.

The second patch changes the ordering of the built-in suspend-to-disk code,
and the last two patches modify the swsusp userland interface code
accordingly.  As far as the last patch is concerned, I've decided to change
the existing ioctls, so that the patched kernel works with the "old" userland.
I don't think this change breaks anything of importance, but if it does, we
can just add (yet) another ioctl to set the platform mode, although in that
case the userland would have to be changed as well.

All of the patches are against 2.6.20-rc1 and should not be used with any
earlier kernel.

Greetings,
Rafael


-- 
If you don't have the time to read,
you don't have the time or the tools to write.
		- Stephen King




[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux