| The s390 SCSI dump tool (zfcpdump) | 
 |  | 
 | System z machines (z900 or higher) provide hardware support for creating system | 
 | dumps on SCSI disks. The dump process is initiated by booting a dump tool, which | 
 | has to create a dump of the current (probably crashed) Linux image. In order to | 
 | not overwrite memory of the crashed Linux with data of the dump tool, the | 
 | hardware saves some memory plus the register sets of the boot CPU before the | 
 | dump tool is loaded. There exists an SCLP hardware interface to obtain the saved | 
 | memory afterwards. Currently 32 MB are saved. | 
 |  | 
 | This zfcpdump implementation consists of a Linux dump kernel together with | 
 | a user space dump tool, which are loaded together into the saved memory region | 
 | below 32 MB. zfcpdump is installed on a SCSI disk using zipl (as contained in | 
 | the s390-tools package) to make the device bootable. The operator of a Linux | 
 | system can then trigger a SCSI dump by booting the SCSI disk, where zfcpdump | 
 | resides on. | 
 |  | 
 | The kernel part of zfcpdump is implemented as a debugfs file under "zcore/mem", | 
 | which exports memory and registers of the crashed Linux in an s390 | 
 | standalone dump format. It can be used in the same way as e.g. /dev/mem. The | 
 | dump format defines a 4K header followed by plain uncompressed memory. The | 
 | register sets are stored in the prefix pages of the respective CPUs. To build a | 
 | dump enabled kernel with the zcore driver, the kernel config option | 
 | CONFIG_CRASH_DUMP has to be set. When reading from "zcore/mem", the part of | 
 | memory, which has been saved by hardware is read by the driver via the SCLP | 
 | hardware interface. The second part is just copied from the non overwritten real | 
 | memory. | 
 |  | 
 | Since kernel version 3.12 also the /proc/vmcore file can also be used to access | 
 | the dump. | 
 |  | 
 | To get a valid zfcpdump kernel configuration use "make zfcpdump_defconfig". | 
 |  | 
 | The s390 zipl tool looks for the zfcpdump kernel and optional initrd/initramfs | 
 | under the following locations: | 
 |  | 
 | * kernel:  <zfcpdump directory>/zfcpdump.image | 
 | * ramdisk: <zfcpdump directory>/zfcpdump.rd | 
 |  | 
 | The zfcpdump directory is defined in the s390-tools package. | 
 |  | 
 | The user space application of zfcpdump can reside in an intitramfs or an | 
 | initrd. It can also be included in a built-in kernel initramfs. The application | 
 | reads from /proc/vmcore or zcore/mem and writes the system dump to a SCSI disk. | 
 |  | 
 | The s390-tools package version 1.24.0 and above builds an external zfcpdump | 
 | initramfs with a user space application that writes the dump to a SCSI | 
 | partition. | 
 |  | 
 | For more information on how to use zfcpdump refer to the s390 'Using the Dump | 
 | Tools book', which is available from | 
 | http://www.ibm.com/developerworks/linux/linux390. |