From 9b225fac81186176075f673dfe5cf8e373b2068a Mon Sep 17 00:00:00 2001 From: Dan Horak Date: Sun, 20 Jul 2008 09:24:05 +0200 Subject: [PATCH 1/5] s390-tools-1.5.3-zipl-zfcpdump-2 --- common.mak | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common.mak b/common.mak index 44adc6e..4373da5 100644 --- a/common.mak +++ b/common.mak @@ -62,8 +62,8 @@ GROUP = $(shell id -gn) export INSTROOT BINDIR LIBDIR MANDIR OWNER GROUP # Special defines for zfcpdump -ZFCPDUMP_DIR = /usr/local/share/zfcpdump -ZFCPDUMP_IMAGE = zfcpdump.image +ZFCPDUMP_DIR = /boot +ZFCPDUMP_IMAGE = zfcpdump ZFCPDUMP_RD = zfcpdump.rd export ZFCPDUMP_DIR ZFCPDUMP_IMAGE ZFCPDUMP_RD -- 1.8.1.4 From a3d9221076f9eb7cc8434baac71327f786351c63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 23 Apr 2009 11:46:01 +0200 Subject: [PATCH 2/5] s390-tools-1.8.1-fdasd-su --- fdasd/fdasd.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fdasd/fdasd.c b/fdasd/fdasd.c index ba22475..f2ac417 100644 --- a/fdasd/fdasd.c +++ b/fdasd/fdasd.c @@ -2229,10 +2229,12 @@ static void fdasd_get_geometry (fdasd_anchor_t *anc) if (anc->verbose) printf("disk type check : ok\n"); if (dasd_info.FBA_layout != 0) { - snprintf(err_str, ERROR_STRING_SIZE, - "%s is not formatted with z/OS compatible " - "disk layout!", options.device); - fdasd_error(anc, wrong_disk_format, err_str); + if (!anc->silent) { + snprintf(err_str, ERROR_STRING_SIZE, + "%s is not formatted with z/OS compatible " + "disk layout!", options.device); + fdasd_error(anc, wrong_disk_format, err_str); + } } if (anc->verbose) printf("disk layout check : ok\n"); -- 1.8.1.4 From d13c754f68ea838a47b8125006b9b493cfbbb7f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 21 Aug 2013 12:13:30 +0200 Subject: [PATCH 3/5] dbginfo.sh: Avoiding exclusion list for pipes in sysfs Description: dbginfo.sh: Avoiding exclusion list for pipes in sysfs Symptom: The dbginfo.sh script hangs Problem: The trace pipes for CPU tracing in sysfs can potentially block dbginfo. Solution: Switch over to make use of dd with the nonblock option to savely collect the whole sysfs without keeping an exclusion list up to date Reproduction: Run dbginfo on a kernel that provides trace_pipe and trace_pipe_raw --- scripts/dbginfo.sh | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/scripts/dbginfo.sh b/scripts/dbginfo.sh index 6d07132..0ada40b 100755 --- a/scripts/dbginfo.sh +++ b/scripts/dbginfo.sh @@ -181,8 +181,8 @@ fi if test ${LINUX_SUPPORT_SYSFSDBF} -eq 1; then if test -e /proc/s390dbf; then PROCFILES="${PROCFILES}\ - `find /proc/s390dbf -type f -not -path \"*/raw\" -not -path \"*/flush\" 2>/dev/null`\ - " + `find /proc/s390dbf -type f -not -path \"*/raw\" -not -path \"*/flush\" 2>/dev/null`\ + " fi fi @@ -492,12 +492,9 @@ collect_sysfs() { mkdir -p "${WORKPATH}${dir_name}" done - find /sys -noleaf -type f -perm /444 \ - -a -not -name "*trace_pipe" \ - -a -not -path "*debug/hid*/events" \ - -a -not -path "*debug/usb/usbmon/*" 2>/dev/null | while IFS= read -r file_name; do + find /sys -noleaf -type f -perm /444 2>/dev/null | while IFS= read -r file_name; do echo " ${file_name}" - cp -P --preserve=links -L --parents "${file_name}" "${WORKPATH}" + dd if="${file_name}" iflag=nonblock of="${WORKPATH}${file_name}" done if test ${debugfs_mounted} -eq 1; then @@ -574,7 +571,7 @@ call_run_command() { # check if command exists if ! which "${raw_cmd}" >/dev/null 2>&1; then - # check if command is a builtin + # check if command is a builtin if ! command -v "${raw_cmd}" >/dev/null 2>&1; then echo " WARNING: Command \"${raw_cmd}\" not available" >> "${logfile}" echo >> "${logfile}" @@ -722,7 +719,7 @@ environment_setup() if test -e "${WORKDIR_BASE}${SCRIPTNAME}".lock; then print_alreadyrunning - exit 1 + exit 1 else touch "${WORKDIR_BASE}${SCRIPTNAME}".lock fi -- 1.8.1.4 From 7d540e7f40c731092ac655d1d38af7d69ceee706 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Wed, 21 Aug 2013 12:13:58 +0200 Subject: [PATCH 4/5] zipl: Fix zipl "--force" option for DASD multi-volume dump Description: zipl: Fix zipl "--force" option for DASD multi-volume dump Symptom: When specifying "--force" and afterwards the dump partition is modified, for example by creating a swap partition, the dump still fails with the message "Wrong signature". Problem: The "larl" instruction was used to load an odd address which results in an incorrect even address. Solution: Load the correct even address. Reproduction: 1) Create ECKD MV dump DASDs: $ zipl -M mvdump.list --force 2) Modify partitions: $ dd if=/dev/zero of=/dev/dasdx1 3) Create dump -> Should work with this fix --- zipl/boot/eckd2mvdump.S | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zipl/boot/eckd2mvdump.S b/zipl/boot/eckd2mvdump.S index f1cec78..529d6b3 100644 --- a/zipl/boot/eckd2mvdump.S +++ b/zipl/boot/eckd2mvdump.S @@ -153,7 +153,7 @@ _dump_mem_64: .Lcheck_sign: larl %r7,.Lforce - tm 0(%r7),0x01 # was zipl --force specified? + tm 1(%r7),0x01 # was zipl --force specified? bo .Lheaders-0b(%r13) # yes, skip signature check llgf %r2,.Ldev_start_blk-0b(%r13) # start block of partition lghi %r3,TMP_PAGE_START # destination of read operation @@ -576,8 +576,9 @@ _ioblock_64: .byte 0x85, 0x40, 0xa2, 0xa3, 0x81, 0x94, 0x97, 0xa2 .byte 0x00 -.org (MVDUMP_TOOL_SIZE - 9) +.org (MVDUMP_TOOL_SIZE - 10) .Lforce: + .byte 0x00 .byte 0x00 # is set to 0x01 by zipl -f .Lmem_upper_limit: .long 0xffffffff,0xffffffff # can be used for memsize=xxx -- 1.8.1.4 From 21caf0d0dc05c5e950f369f72027a203a7d3e772 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Tue, 5 Nov 2013 12:23:18 +0100 Subject: [PATCH 5/5] zipl: Use "possible_cpus" kernel parameter Description: zipl: Use "possible_cpus" kernel parameter Symptom: The zfcpdump system might run out-of memory. Problem: For each possible CPU the zfcpdump kernel consumes memory for the per-CPU data structures. Since it only runs with one CPU this is not necessary. Because only 32 MiB are available for zfcpdump the per-CPU data should not be allocated. Solution: Use the kernel parameter "possible_cpus=1". Reproduction: To verify that the fix is included check that the zipl -D output line "kernel parmline" contains "possible_cpus=1". --- zipl/src/bootmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zipl/src/bootmap.c b/zipl/src/bootmap.c index cc2ed16..68dffe1 100644 --- a/zipl/src/bootmap.c +++ b/zipl/src/bootmap.c @@ -603,10 +603,11 @@ create_dump_fs_parmline(const char* parmline, const char* root_dev, if (!result) return NULL; snprintf(result, DUMP_PARAM_MAX_LEN, "%s%sroot=%s dump_part=%d " - "dump_mem=%lld maxcpus=%d cgroup_disable=memory", + "dump_mem=%lld maxcpus=%d possible_cpus=%d " + "cgroup_disable=memory", parmline ? parmline : "", parmline ? " " : "", root_dev, part_num, - (unsigned long long) mem, max_cpus); + (unsigned long long) mem, max_cpus, max_cpus); result[DUMP_PARAM_MAX_LEN - 1] = 0; return result; } -- 1.8.1.4