linux/arch/s390/kernel
Michael Holzheu 1aaf179d04 [S390] hibernate: Do real CPU swap at resume time
Currently, when the physical resume CPU is not equal to the physical suspend
CPU, we swap the CPUs logically, by modifying the logical/physical CPU mapping.
This has two major drawbacks: First the change is visible from user space (e.g.
CPU sysfs files) and second it is hard to ensure that nowhere in the kernel
the physical CPU ID is stored before suspend.
To fix this, we now really swap the physical CPUs, if the resume CPU is not
the pysical suspend CPU. We restart the suspend CPU and stop the resume CPU
using SIGP restart and SIGP stop. If the suspend CPU is no longer available,
we write a message and load a disabled wait PSW.

Signed-off-by: Michael Holzheu <michael.holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2009-09-22 22:58:46 +02:00
..
vdso32 [S390] gettimeofday.S: removed duplicated #includes 2009-01-09 12:15:04 +01:00
vdso64 [S390] vdso: clock_gettime of CLOCK_THREAD_CPUTIME_ID with noexec=on 2009-07-24 12:41:02 +02:00
asm-offsets.c [S390] hibernate: Do real CPU swap at resume time 2009-09-22 22:58:46 +02:00
audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
audit.h [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
base.S [S390] Convert memory detection into C code. 2007-02-05 21:18:37 +01:00
bitmap.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
compat_audit.c [S390] Get rid of a bunch of sparse warnings again. 2007-10-12 16:13:06 +02:00
compat_exec_domain.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
compat_linux.c [S390] Get rid of init_module/delete_module compat functions. 2009-09-22 22:58:43 +02:00
compat_linux.h [S390] Convert sys_execve to function with parameters. 2009-09-22 22:58:43 +02:00
compat_ptrace.h [S390] Expose a constant for the number of words representing the CRs 2009-03-26 15:24:25 +01:00
compat_signal.c [S390] fix system call parameter functions. 2008-11-27 11:06:56 +01:00
compat_wrapper.S [S390] Get rid of init_module/delete_module compat functions. 2009-09-22 22:58:43 +02:00
cpcmd.c [S390] convert cpcmd printks to pr_xxx macros. 2008-12-25 13:39:19 +01:00
crash.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
debug.c [SCSI] zfcp: Remove duplicated code for debug timestamps 2009-09-05 08:49:48 -05:00
diag.c [S390] vmur: fix diag14 exceptions with addresses > 2GB. 2007-08-22 13:51:47 +02:00
dis.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
early.c [S390] kernel: Print an error message if kernel NSS cannot be defined 2009-09-11 10:29:51 +02:00
ebcdic.c [S390] Get rid of a lot of sparse warnings. 2007-02-05 21:16:47 +01:00
entry64.S Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-11 13:24:03 -07:00
entry.h [S390] Convert sys_execve to function with parameters. 2009-09-22 22:58:43 +02:00
entry.S Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-11 13:24:03 -07:00
ftrace.c tracing: Add syscall tracepoints - s390 arch update 2009-08-26 21:29:44 +02:00
head31.S [S390] Initialize __LC_THREAD_INFO early. 2009-09-11 10:29:53 +02:00
head64.S [S390] Limit cpu detection to 256 physical cpus. 2009-09-11 10:29:55 +02:00
head.S [S390] Limit cpu detection to 256 physical cpus. 2009-09-11 10:29:55 +02:00
init_task.c mm: consolidate init_mm definition 2009-06-16 19:47:28 -07:00
ipl.c [S390] kernel: Convert upper case scpdata to lower case 2009-09-11 10:29:46 +02:00
irq.c [S390] Fix init irq proc build break. 2009-02-11 10:37:39 +01:00
kprobes.c [S390] kprobes: defer setting of ctlblk state 2009-06-22 12:08:24 +02:00
machine_kexec.c [S390] Cleanup kprobes printk messages. 2008-07-14 10:02:24 +02:00
Makefile [S390] hibernation: merge files and move to kernel/ 2009-09-11 10:29:45 +02:00
mcount64.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mcount.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mem_detect.c [S390] s390: hibernation support for s390 2009-06-16 10:31:22 +02:00
module.c module: cleanup FIXME comments about trimming exception table entries. 2009-06-12 21:47:05 +09:30
nmi.c [S390] merge cpu.h into cputime.h 2009-06-12 10:27:29 +02:00
process.c [S390] Convert sys_execve to function with parameters. 2009-09-22 22:58:43 +02:00
processor.c [S390] Add hwcap flag for the etf3 enhancement facility 2009-03-26 15:24:32 +01:00
ptrace.c [S390] ptrace: use common code for simple peek/poke operations 2009-09-22 22:58:45 +02:00
reipl64.S [S390] fix clock comparator save area usage 2009-03-26 15:24:32 +01:00
reipl.S [S390] reipl: move dump_prefix_page out of text section. 2007-03-05 23:35:43 +01:00
relocate_kernel64.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
relocate_kernel.S [S390] Reset infrastructure for re-IPL. 2006-12-04 15:40:26 +01:00
s390_ext.c [S390] ftrace: add function graph tracer support 2009-06-12 10:27:39 +02:00
s390_ksyms.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
sclp.S [S390] hibernate: Do real CPU swap at resume time 2009-09-22 22:58:46 +02:00
setup.c [S390] kvm: use console_initcall() to initialize s390 virtio console 2009-09-11 10:29:52 +02:00
signal.c KEYS: Add a keyctl to install a process's session keyring on its parent [try #6] 2009-09-02 21:29:22 +10:00
smp.c [S390] hibernate: Do real CPU swap at resume time 2009-09-22 22:58:46 +02:00
stacktrace.c [S390] Fix stacktrace compile bug. 2008-07-17 17:22:09 +02:00
suspend.c [S390] hibernate: make sure pfn_is_nosave handles lowcore pages 2009-09-22 22:58:45 +02:00
swsusp_asm64.S [S390] hibernate: Do real CPU swap at resume time 2009-09-22 22:58:46 +02:00
sys_s390.c includecheck fix: s390, sys_s390.c 2009-09-20 15:02:14 +05:30
syscalls.S [S390] Get rid of init_module/delete_module compat functions. 2009-09-22 22:58:43 +02:00
sysinfo.c [S390] move sysinfo.c from drivers/s390 to arch/s390/kernel 2009-03-26 15:24:06 +01:00
time.c Merge branch 'timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-09-18 09:15:24 -07:00
topology.c [S390] cpumask: remove cpu_coregroup_map 2009-03-26 15:24:32 +01:00
traps.c [S390] fix dump_stack vs. %p and (null) 2009-03-26 15:24:02 +01:00
vdso.c [S390] implement is_compat_task 2009-06-12 10:27:30 +02:00
vmlinux.lds.S Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2009-09-15 09:39:44 -07:00
vtime.c [S390] lockless idle time accounting 2009-06-22 12:08:23 +02:00