remarkable-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
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
audit.h
base.S
bitmap.c [S390] move EXPORT_SYMBOLs to definitions 2009-03-26 15:24:11 +01:00
compat_audit.c
compat_exec_domain.c
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
compat_wrapper.S [S390] Get rid of init_module/delete_module compat functions. 2009-09-22 22:58:43 +02:00
cpcmd.c
crash.c
debug.c [SCSI] zfcp: Remove duplicated code for debug timestamps 2009-09-05 08:49:48 -05:00
diag.c
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
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
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
ftrace.c tracing: Add syscall tracepoints - s390 arch update 2009-08-26 21:29:44 +02:00
head.S [S390] Limit cpu detection to 256 physical cpus. 2009-09-11 10:29:55 +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
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
kprobes.c [S390] kprobes: defer setting of ctlblk state 2009-06-22 12:08:24 +02:00
machine_kexec.c
Makefile [S390] hibernation: merge files and move to kernel/ 2009-09-11 10:29:45 +02:00
mcount.S [S390] improve mcount code 2009-09-11 10:29:43 +02:00
mcount64.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
reipl.S
reipl64.S [S390] fix clock comparator save area usage 2009-03-26 15:24:32 +01:00
relocate_kernel.S
relocate_kernel64.S
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
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
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