Blob Blame History Raw
From 9b225fac81186176075f673dfe5cf8e373b2068a Mon Sep 17 00:00:00 2001
From: Dan Horak <dan@danny.cz>
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?= <dan@danny.cz>
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?= <dan@danny.cz>
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?= <dan@danny.cz>
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?= <dan@danny.cz>
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