s390/dump: rework CPU register dump code
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 29 Oct 2015 09:28:26 +0000 (10:28 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 27 Nov 2015 08:24:14 +0000 (09:24 +0100)
commit1a36a39e225d3558fb3776a3d3d7736cf1ec9f60
tree63a1c8892ff95dac939beb6e7a13456fcec20cb7
parentf08b8414632c9f256e33f0a18104d8d5e103d204
s390/dump: rework CPU register dump code

To collect the CPU registers of the crashed system allocated a single
page with memblock_alloc_base and use it as a copy buffer. Replace the
stop-and-store-status sigp with a store-status-at-address sigp in
smp_save_dump_cpus() and smp_store_status(). In both cases the target
CPU is already stopped and store-status-at-address avoids the detour
via the absolute zero page.

For kexec simplify s390_reset_system and call store_status() before
the prefix register of the boot CPU has been set to zero. Use STPX
to store the prefix register and remove dump_prefix_page.

Acked-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
12 files changed:
arch/s390/include/asm/fpu/internal.h
arch/s390/include/asm/ipl.h
arch/s390/include/asm/reset.h
arch/s390/include/asm/smp.h
arch/s390/kernel/early.c
arch/s390/kernel/ipl.c
arch/s390/kernel/machine_kexec.c
arch/s390/kernel/reipl.S
arch/s390/kernel/setup.c
arch/s390/kernel/smp.c
drivers/s390/char/zcore.c
drivers/s390/cio/cio.c