2014-04-14 09:56:07 +00:00
|
|
|
The s390 SCSI dump tool (zfcpdump)
|
2007-04-27 14:01:49 +00:00
|
|
|
|
|
|
|
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
|
2014-04-14 09:56:07 +00:00
|
|
|
hardware saves some memory plus the register sets of the boot CPU before the
|
2007-04-27 14:01:49 +00:00
|
|
|
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
|
2014-04-14 09:56:07 +00:00
|
|
|
a user space dump tool, which are loaded together into the saved memory region
|
2007-04-27 14:01:49 +00:00
|
|
|
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
|
2014-04-14 09:56:07 +00:00
|
|
|
register sets are stored in the prefix pages of the respective CPUs. To build a
|
2007-04-27 14:01:49 +00:00
|
|
|
dump enabled kernel with the zcore driver, the kernel config option
|
2014-04-14 08:38:05 +00:00
|
|
|
CONFIG_CRASH_DUMP has to be set. When reading from "zcore/mem", the part of
|
2007-04-27 14:01:49 +00:00
|
|
|
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.
|
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
Since kernel version 3.12 also the /proc/vmcore file can also be used to access
|
|
|
|
the dump.
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
To get a valid zfcpdump kernel configuration use "make zfcpdump_defconfig".
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
The s390 zipl tool looks for the zfcpdump kernel and optional initrd/initramfs
|
|
|
|
under the following locations:
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
* kernel: <zfcpdump directory>/zfcpdump.image
|
|
|
|
* ramdisk: <zfcpdump directory>/zfcpdump.rd
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
The zfcpdump directory is defined in the s390-tools package.
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
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.
|
2007-04-27 14:01:49 +00:00
|
|
|
|
2014-04-14 09:56:07 +00:00
|
|
|
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.
|
2007-04-27 14:01:49 +00:00
|
|
|
|
|
|
|
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.
|