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