linux/arch/s390/kernel
Heiko Carstens ead1dec8ed s390/ipl: revert Load Normal semantics for LPAR CCW-type re-IPL
This reverts the two commits

7afbeb6df2 ("s390/ipl: always use load normal for CCW-type re-IPL")
0f7451ff3a ("s390/ipl: use load normal for LPAR re-ipl")

The two commits did not take into account that behavior of standby
memory changes fundamentally if the re-IPL method is changed from
Load Clear to Load Normal.

In case of the old re-IPL clear method all memory that was initially
in standby state will be put into standby state again within the
re-IPL process. Or in other words: memory that was brought online
before a re-IPL will be offline again after a reboot.

Given that we use different re-IPL methods depending on the hypervisor
and CCW-type vs SCSI re-IPL it is not easy to tell in advance when and
why memory will stay online or will be offline after a re-IPL.
This does also have other side effects, since memory that is online
from the beginning will be in ZONE_NORMAL by default vs ZONE_MOVABLE
for memory that is offline.

Therefore, before the change, a user could online and offline memory
easily since standby memory was always in ZONE_NORMAL.  After the
change, and a re-IPL, this depended on which memory parts were online
before the re-IPL.

From a usability point of view the current behavior is more than
suboptimal. Therefore revert these changes until we have a better
solution and get back to a consistent behavior. The bad thing about
this is that the time required for a re-IPL will be significantly
increased for configurations with several 100GB or 1TB of memory.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2017-06-12 16:26:01 +02:00
..
vdso32
vdso64
.gitignore
als.c
asm-offsets.c
audit.c
audit.h
base.S
cache.c
compat_audit.c
compat_linux.c
compat_linux.h
compat_ptrace.h
compat_signal.c
compat_wrapper.c
cpcmd.c
crash_dump.c
debug.c s390: convert debug_info.ref_count from atomic_t to refcount_t 2017-05-11 16:35:32 +02:00
diag.c
dis.c
dumpstack.c s390/dumpstack: remove raw stack dump 2017-06-12 16:26:01 +02:00
early_printk.c
early.c
ebcdic.c
entry.h
entry.S s390/kvm: do not rely on the ILC on kvm host protection fauls 2017-05-17 12:34:03 +02:00
fpu.c
ftrace.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-05-16 09:24:44 -07:00
guarded_storage.c
head64.S
head_kdump.S
head.S
idle.c
ipl.c s390/ipl: revert Load Normal semantics for LPAR CCW-type re-IPL 2017-06-12 16:26:01 +02:00
irq.c
jump_label.c
kdebugfs.c
kprobes.c s390: use set_memory.h header 2017-05-08 17:15:13 -07:00
lgr.c
machine_kexec.c s390: use set_memory.h header 2017-05-08 17:15:13 -07:00
Makefile
mcount.S
module.c
nmi.c
os_info.c
perf_cpum_cf_events.c
perf_cpum_cf.c
perf_cpum_sf.c cpumask: make "nr_cpumask_bits" unsigned 2017-05-08 17:15:11 -07:00
perf_event.c s390/perf: fix null string in perf list pmu command 2017-06-12 16:26:00 +02:00
pgm_check.S
process.c
processor.c
ptrace.c s390/ptrace: guarded storage regset for the current task 2017-06-12 16:25:59 +02:00
reipl.S
relocate_kernel.S
runtime_instr.c
setup.c
signal.c
smp.c s390/smp: fix false positive kmemleak of mcesa data structure 2017-06-12 16:25:58 +02:00
stacktrace.c
suspend.c
swsusp.S
sys_s390.c
syscalls.S
sysinfo.c
time.c s390/time: Set ->min_delta_ticks and ->max_delta_ticks 2017-04-14 13:11:20 -07:00
topology.c
trace.c
traps.c s390: add missing header includes for type checking 2017-06-12 16:25:55 +02:00
uprobes.c
vdso.c s390/vdso: use _install_special_mapping to establish vdso 2017-06-12 16:25:57 +02:00
vmlinux.lds.S s390: move _text symbol to address higher than zero 2017-05-09 10:44:38 +02:00
vtime.c s390/cputime: simplify account_system_index_scaled 2017-06-12 16:25:57 +02:00