linux/arch/s390
Vasily Gorbik 724dc336b7 s390/startup: add pgm check info printing
Try to print out startup pgm check info including exact linux kernel
version, pgm interruption code and ilc, psw and general registers. Like
the following:

Linux version 5.3.0-rc7-07282-ge7b4d41d61bd-dirty (gor@tuxmaker) #3 SMP PREEMPT Thu Sep 5 16:07:34 CEST 2019
Kernel fault: interruption code 0005 ilc:2
PSW : 0000000180000000 0000000000012e52
      R:0 T:0 IO:0 EX:0 Key:0 M:0 W:0 P:0 AS:0 CC:0 PM:0 RI:0 EA:3
GPRS: 0000000000000000 00ffffffffffffff 0000000000000000 0000000000019a58
      000000000000bf68 0000000000000000 0000000000000000 0000000000000000
      0000000000000000 0000000000000000 000000000001a041 0000000000000000
      0000000004c9c000 0000000000010070 0000000000012e42 000000000000beb0

This info makes it apparent that kernel startup failed and might help
to understand what went wrong without actual standalone dump.

Printing code runs on its own stack of 1 page (at unused 0x5000), which
should be sufficient for sclp_early_printk usage (typical stack usage
observed has been around 512 bytes).

The code has pgm check recursion prevention, despite pgm check info
printing failure (follow on pgm check) or success it restores original
faulty psw and gprs and does disabled wait.

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
2019-09-13 12:17:37 +02:00
..
appldata proc/sysctl: add shared variables for range check 2019-07-18 17:08:07 -07:00
boot s390/startup: add pgm check info printing 2019-09-13 12:17:37 +02:00
configs Kbuild updates for v5.3 2019-07-12 16:03:16 -07:00
crypto s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding 2019-09-05 15:18:15 +02:00
hypfs s390/hypfs: fix a typo in the name of a function 2019-07-23 10:45:32 +02:00
include s390/base: remove unused s390_base_mcck_handler 2019-09-03 13:53:56 +02:00
kernel s390/base: remove unused s390_base_mcck_handler 2019-09-03 13:53:56 +02:00
kvm KVM: s390: Use kvm_vcpu_wake_up in kvm_s390_vcpu_wakeup 2019-07-20 09:00:45 +02:00
lib s390: clean .bss before running uncompressed kernel 2019-08-21 12:58:52 +02:00
mm s390/kasan: add kdump support 2019-08-29 15:34:58 +02:00
net s390: bpf: eliminate zero extension code-gen 2019-05-24 18:58:38 -07:00
numa s390/numa: correct early_param handling 2019-08-26 12:51:17 +02:00
oprofile s390/unwind: introduce stack unwind API 2019-05-02 13:54:11 +02:00
pci s390/pci: avoid using strncmp with hardcoded length 2019-08-29 15:34:57 +02:00
purgatory s390/purgatory: update .gitignore 2019-06-04 15:03:42 +02:00
scripts s390: make chkbss work with clang 2019-04-11 13:36:52 +02:00
tools s390/disassembler: update opcode table 2019-06-04 15:03:58 +02:00
Kbuild s390/kexec_file: Add purgatory 2018-04-16 09:10:22 +02:00
Kconfig s390/stacktrace: use common arch_stack_walk infrastructure 2019-08-21 12:58:53 +02:00
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Makefile Kconfig updates for v5.3 2019-07-12 16:06:27 -07:00