kernel_optimize_test/kernel
Rafael J. Wysocki e3c7db621b [PATCH] PM: Change code ordering in main.c
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.

This patch:

Change the ordering of code in kernel/power/main.c so that device_suspend()
is called before disable_nonboot_cpus() and pm_ops->finish() is called after
enable_nonboot_cpus() and before device_resume(), as indicated by recent
discussion on Linux-PM
(cf. http://lists.osdl.org/pipermail/linux-pm/2006-November/004164.html).

Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Cc: Greg KH <greg@kroah.com>
Cc: Nigel Cunningham <nigel@suspend2.net>
Cc: Patrick Mochel <mochel@digitalimplant.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-02-11 10:51:19 -08:00
..
irq devres: device resource management 2007-02-09 17:39:36 -05:00
power [PATCH] PM: Change code ordering in main.c 2007-02-11 10:51:19 -08:00
time
.gitignore
acct.c
audit.c
audit.h
auditfilter.c [PATCH] audit: fix kstrdup() error check 2006-12-22 08:55:49 -08:00
auditsc.c
capability.c
compat.c
configs.c
cpu.c [PATCH] Change cpu_up and co from __devinit to __cpuinit 2007-01-11 18:18:20 -08:00
cpuset.c [PATCH] cpuset procfs warning fix 2006-12-30 10:56:43 -08:00
delayacct.c
dma.c
exec_domain.c
exit.c [PATCH] namespaces: fix task exit disaster 2007-01-30 13:40:36 -08:00
extable.c
fork.c [PATCH] fork_idle() should be __cpuinit, not __devinit 2007-02-01 16:17:06 -08:00
futex_compat.c
futex.c
hrtimer.c
itimer.c
kallsyms.c
Kconfig.hz
Kconfig.preempt
kexec.c
kfifo.c
kmod.c
kprobes.c [PATCH] kprobes: replace magic numbers with enum 2007-01-30 16:01:35 -08:00
ksysfs.c
kthread.c
latency.c
lockdep_internals.h
lockdep_proc.c
lockdep.c [PATCH] lockdep: printk warning fix 2006-12-30 10:56:43 -08:00
Makefile Remove stack unwinder for now 2006-12-15 08:47:51 -08:00
module.c /sys/modules/*/holders 2007-02-07 10:37:12 -08:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex.h
nsproxy.c Revert "[PATCH] namespaces: fix exit race by splitting exit" 2007-01-30 13:35:18 -08:00
panic.c
params.c /sys/modules/*/holders 2007-02-07 10:37:12 -08:00
pid.c [PATCH] namespaces: fix task exit disaster 2007-01-30 13:40:36 -08:00
posix-cpu-timers.c
posix-timers.c
printk.c [PATCH] make kernel/printk.c:ignore_loglevel_setup() static 2006-12-22 08:55:47 -08:00
profile.c [PATCH] fix "kvm: add vm exit profiling" 2007-01-23 07:52:05 -08:00
ptrace.c
rcupdate.c
rcutorture.c [PATCH] rcu: rcutorture suspend fix 2006-12-30 10:55:55 -08:00
relay.c [PATCH] relay: remove inlining 2006-12-22 08:55:51 -08:00
resource.c devres: device resource management 2007-02-09 17:39:36 -05:00
rtmutex_common.h
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rwsem.c
sched.c [PATCH] sched: tasks cannot run on cpus onlined after boot 2007-01-11 18:18:20 -08:00
seccomp.c
signal.c
softirq.c
softlockup.c
spinlock.c
srcu.c
stacktrace.c
stop_machine.c
sys_ni.c
sys.c [PATCH] notifiers: fix blocking_notifier_call_chain() scalability 2007-01-23 11:08:03 -08:00
sysctl.c [PATCH] make reading /proc/sys/kernel/cap-bould not require CAP_SYS_MODULE 2007-02-11 10:51:19 -08:00
taskstats.c
time.c
timer.c [PATCH] schedule_timeout(): improve warning message 2006-12-22 08:55:49 -08:00
tsacct.c
uid16.c
user.c
utsname.c
wait.c
workqueue.c [PATCH] fix kernel-doc warnings in 2.6.20-rc1 2006-12-22 08:55:47 -08:00