dumpconf: add new parameter 'SCP_DATA' for SCSI/NVMe/ECKD dump devices

The new parameter 'SCP_DATA' can be used to pass additional kernel cmdline
parameters to a stand-alone SCSI/NVMe/ECKD dumper for debugging purposes.

Configuration example
=====================

ON_PANIC=dump_reipl
DUMP_TYPE=fcp
DEVICE=0.0.4711
WWPN=0x5005076303004711
LUN=0x4711000000000000
BOOTPROG=0
BR_LBA=0
SCP_DATA="dump_debug=6 ignore_loglevel earlyprintk=sclp panic_print=3"

Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
This commit is contained in:
Alexander Egorenkov
2024-05-13 14:28:21 +02:00
committed by Steffen Eiden
parent 7ea0dfdc17
commit 4d2c9267c2
2 changed files with 37 additions and 0 deletions

View File

@@ -80,6 +80,10 @@ Cylinder, Head and Record) or "auto".
\fB - BR_LBA:\fR
Boot record logical block address.
.TP
\fB - SCP_DATA:\fR
SCP data for SCSI, NVMe and ECKD dump devices.
.TP
\fB - VMCMD_1, VMCMD_2 ... VMCMD_8:\fR
Up to eight CP commands, which are executed in case of a kernel panic

View File

@@ -253,6 +253,13 @@ setup_eckd_device()
pr_error "ERROR: Invalid BR_CHR '$BR_CHR'." $ERRMSG
return
fi
if [ -e $1/eckd/scp_data ]; then
echo -n "$SCP_DATA" > $1/eckd/scp_data 2>/dev/null || RETVAL=1
if [ $RETVAL -eq 1 ]; then
pr_error "ERROR: Invalid SCP_DATA '$SCP_DATA'." $ERRMSG
return
fi
fi
}
setup_fcp_device()
@@ -285,6 +292,13 @@ setup_fcp_device()
pr_error "ERROR: Invalid BR_LBA '$BR_LBA'." $ERRMSG
return
fi
if [ -e $1/fcp/scp_data ]; then
echo -n "$SCP_DATA" > $1/fcp/scp_data 2>/dev/null || RETVAL=1
if [ $RETVAL -eq 1 ]; then
pr_error "ERROR: Invalid SCP_DATA '$SCP_DATA'." $ERRMSG
return
fi
fi
}
setup_nss_device()
@@ -314,6 +328,13 @@ setup_nvme_device()
pr_error "ERROR: Invalid BR_LBA '$BR_LBA'." $ERRMSG
return
fi
if [ -e $1/nvme/scp_data ]; then
echo -n "$SCP_DATA" > $1/nvme/scp_data 2>/dev/null || RETVAL=1
if [ $RETVAL -eq 1 ]; then
pr_error "ERROR: Invalid SCP_DATA '$SCP_DATA'." $ERRMSG
return
fi
fi
}
setup_reipl()
@@ -429,6 +450,10 @@ print_fcp_device()
pr_info "bootprog: $BOOTPROG"
BR_LBA=$(cat $1/fcp/br_lba) || RETVAL=1
pr_info "br_lba..: $BR_LBA"
if [ -e $1/fcp/scp_data ]; then
SCP_DATA=$(cat $1/fcp/scp_data) || RETVAL=1
pr_info "scp_data: $SCP_DATA"
fi
}
print_ccw_device()
@@ -445,6 +470,10 @@ print_eckd_device()
pr_info "br_chr..: $BR_CHR"
BOOTPROG=$(cat $1/eckd/bootprog) || RETVAL=1
pr_info "bootprog: $BOOTPROG"
if [ -e $1/eckd/scp_data ]; then
SCP_DATA=$(cat $1/eckd/scp_data) || RETVAL=1
pr_info "scp_data: $SCP_DATA"
fi
}
print_nvme_device()
@@ -457,6 +486,10 @@ print_nvme_device()
pr_info "bootprog: $BOOTPROG"
BR_LBA=$(cat $1/nvme/br_lba) || RETVAL=1
pr_info "br_lba..: $BR_LBA"
if [ -e $1/nvme/scp_data ]; then
SCP_DATA=$(cat $1/nvme/scp_data) || RETVAL=1
pr_info "scp_data: $SCP_DATA"
fi
}
print_nss_name()