2013-07-24 19:43:43 +00:00
|
|
|
From 9b225fac81186176075f673dfe5cf8e373b2068a Mon Sep 17 00:00:00 2001
|
|
|
|
From: Dan Horak <dan@danny.cz>
|
|
|
|
Date: Sun, 20 Jul 2008 09:24:05 +0200
|
2013-11-07 10:45:30 +00:00
|
|
|
Subject: [PATCH 1/5] s390-tools-1.5.3-zipl-zfcpdump-2
|
2013-07-24 19:43:43 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
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
|
2013-11-07 10:45:30 +00:00
|
|
|
Subject: [PATCH 2/5] s390-tools-1.8.1-fdasd-su
|
2013-07-24 19:43:43 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
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
|
|
|
|
|
2013-08-21 10:18:42 +00:00
|
|
|
|
|
|
|
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
|
2013-11-07 10:45:30 +00:00
|
|
|
Subject: [PATCH 3/5] dbginfo.sh: Avoiding exclusion list for pipes in sysfs
|
2013-08-21 10:18:42 +00:00
|
|
|
|
|
|
|
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
|
2013-11-07 10:45:30 +00:00
|
|
|
Subject: [PATCH 4/5] zipl: Fix zipl "--force" option for DASD multi-volume
|
2013-08-21 10:18:42 +00:00
|
|
|
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
|
|
|
|
|
2013-11-07 10:45:30 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
|