blob: dc929be9601615f4e9e3e2393b6b4fbb83f50009 [file] [log] [blame]
Michael Holzheu7d4c7382014-04-14 11:56:07 +02001The s390 SCSI dump tool (zfcpdump)
Michael Holzheu411ed322007-04-27 16:01:49 +02002
3System z machines (z900 or higher) provide hardware support for creating system
4dumps on SCSI disks. The dump process is initiated by booting a dump tool, which
5has to create a dump of the current (probably crashed) Linux image. In order to
6not overwrite memory of the crashed Linux with data of the dump tool, the
Michael Holzheu7d4c7382014-04-14 11:56:07 +02007hardware saves some memory plus the register sets of the boot CPU before the
Michael Holzheu411ed322007-04-27 16:01:49 +02008dump tool is loaded. There exists an SCLP hardware interface to obtain the saved
9memory afterwards. Currently 32 MB are saved.
10
11This zfcpdump implementation consists of a Linux dump kernel together with
Michael Holzheu7d4c7382014-04-14 11:56:07 +020012a user space dump tool, which are loaded together into the saved memory region
Michael Holzheu411ed322007-04-27 16:01:49 +020013below 32 MB. zfcpdump is installed on a SCSI disk using zipl (as contained in
14the s390-tools package) to make the device bootable. The operator of a Linux
15system can then trigger a SCSI dump by booting the SCSI disk, where zfcpdump
16resides on.
17
18The kernel part of zfcpdump is implemented as a debugfs file under "zcore/mem",
19which exports memory and registers of the crashed Linux in an s390
20standalone dump format. It can be used in the same way as e.g. /dev/mem. The
21dump format defines a 4K header followed by plain uncompressed memory. The
Michael Holzheu7d4c7382014-04-14 11:56:07 +020022register sets are stored in the prefix pages of the respective CPUs. To build a
Michael Holzheu411ed322007-04-27 16:01:49 +020023dump enabled kernel with the zcore driver, the kernel config option
Michael Holzheubf28a592014-04-14 10:38:05 +020024CONFIG_CRASH_DUMP has to be set. When reading from "zcore/mem", the part of
Michael Holzheu411ed322007-04-27 16:01:49 +020025memory, which has been saved by hardware is read by the driver via the SCLP
26hardware interface. The second part is just copied from the non overwritten real
27memory.
28
Michael Holzheu7d4c7382014-04-14 11:56:07 +020029Since kernel version 3.12 also the /proc/vmcore file can also be used to access
30the dump.
Michael Holzheu411ed322007-04-27 16:01:49 +020031
Michael Holzheu7d4c7382014-04-14 11:56:07 +020032To get a valid zfcpdump kernel configuration use "make zfcpdump_defconfig".
Michael Holzheu411ed322007-04-27 16:01:49 +020033
Michael Holzheu7d4c7382014-04-14 11:56:07 +020034The s390 zipl tool looks for the zfcpdump kernel and optional initrd/initramfs
35under the following locations:
Michael Holzheu411ed322007-04-27 16:01:49 +020036
Michael Holzheu7d4c7382014-04-14 11:56:07 +020037* kernel: <zfcpdump directory>/zfcpdump.image
38* ramdisk: <zfcpdump directory>/zfcpdump.rd
Michael Holzheu411ed322007-04-27 16:01:49 +020039
Michael Holzheu7d4c7382014-04-14 11:56:07 +020040The zfcpdump directory is defined in the s390-tools package.
Michael Holzheu411ed322007-04-27 16:01:49 +020041
Michael Holzheu7d4c7382014-04-14 11:56:07 +020042The user space application of zfcpdump can reside in an intitramfs or an
43initrd. It can also be included in a built-in kernel initramfs. The application
44reads from /proc/vmcore or zcore/mem and writes the system dump to a SCSI disk.
Michael Holzheu411ed322007-04-27 16:01:49 +020045
Michael Holzheu7d4c7382014-04-14 11:56:07 +020046The s390-tools package version 1.24.0 and above builds an external zfcpdump
47initramfs with a user space application that writes the dump to a SCSI
48partition.
Michael Holzheu411ed322007-04-27 16:01:49 +020049
50For more information on how to use zfcpdump refer to the s390 'Using the Dump
51Tools book', which is available from
52http://www.ibm.com/developerworks/linux/linux390.