- dasd_reload:
* Fixed several syntax errors. * Changed the script to ensure that the DASD volume are actually activated in device number order. * Check for 41-dasd-<type>-<ccw>.rules in addition to the original 51-dasd-<ccw>.rules. If an old 51-dasd-<ccw>.rules file is found, rename it to obsolete-51-dasd-<ccw>.rules, and use chzdev to generate a new rules file. (bsc#1103407) - Added the following patches for bsc#1098069: * s390-tools-sles15-dbginfo-add-data-for-ps-cpprot.patch * s390-tools-sles15-mon_procd-fix-parsing-of-proc-pid-stat.patch - Added the following patch (bsc#1094354) * customize-zdev-root-update-script.patch - Modified ctc_configure to not pass a "protcol=" parameter when configuring LCS devices. (bsc#1096520) OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=52
This commit is contained in:
parent
d4760b840e
commit
0e0d01b0a0
@ -88,11 +88,6 @@ if [ -z "${CTC_READ_CHAN}" ] || [ -z "${CTC_WRITE_CHAN}" ] || [ -z "${ON_OFF}" ]
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "${CTC_MODE}" ]; then
|
|
||||||
PARM_LIST="${PARM_LIST} protocol=0"
|
|
||||||
else PARM_LIST="${PARM_LIST} protocol=${CTC_MODE}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f /sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype ]; then
|
if [ -f /sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype ]; then
|
||||||
read CU_TYPE < /sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype
|
read CU_TYPE < /sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype
|
||||||
else mesg "Psuedo file/sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype doesn't exist."
|
else mesg "Psuedo file/sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype doesn't exist."
|
||||||
@ -100,9 +95,14 @@ else mesg "Psuedo file/sys/bus/ccw/devices/${CTC_READ_CHAN}/cutype doesn't exist
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
PARM_LIST=""
|
||||||
if [ "${CU_TYPE}" == "3088/01" ] || [ "${CU_TYPE}" == "3088/60" ]; then
|
if [ "${CU_TYPE}" == "3088/01" ] || [ "${CU_TYPE}" == "3088/60" ]; then
|
||||||
DEV_TYPE="lcs"
|
DEV_TYPE="lcs"
|
||||||
else DEV_TYPE="ctc"
|
else DEV_TYPE="ctc"
|
||||||
|
if [ -z "${CTC_MODE}" ]; then
|
||||||
|
PARM_LIST="${PARM_LIST} protocol=0"
|
||||||
|
else PARM_LIST="${PARM_LIST} protocol=${CTC_MODE}"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${ON_OFF}" == 0 ]; then
|
if [ "${ON_OFF}" == 0 ]; then
|
||||||
|
13
customize-zdev-root-update-script.patch
Normal file
13
customize-zdev-root-update-script.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
--- s390-tools-2.1.0/zdev/src/zdev-root-update.dracut 2017-09-25 08:15:15.000000000 -0400
|
||||||
|
+++ s390-tools-2.1.0/zdev/src/zdev-root-update.dracut 2018-08-23 21:33:40.847755927 -0400
|
||||||
|
@@ -20,10 +20,4 @@
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
-echo "Installing IPL record"
|
||||||
|
-zipl --noninteractive || {
|
||||||
|
- echo "${TOOLNAME}: Error: Could not install IPL record" >&2
|
||||||
|
- exit 1
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
exit 0
|
103
dasd_reload
103
dasd_reload
@ -50,16 +50,16 @@ fi
|
|||||||
dasd_alias=
|
dasd_alias=
|
||||||
let EXITRC=0
|
let EXITRC=0
|
||||||
for dev in /sys/bus/ccw/devices/*; do
|
for dev in /sys/bus/ccw/devices/*; do
|
||||||
if [ -f $dev/use_diag ]; then
|
if [ -f ${dev}/use_diag ]; then
|
||||||
read _online < $dev/online
|
read _online < ${dev}/online
|
||||||
read _alias < $dev/alias
|
read _alias < ${dev}/alias
|
||||||
if [ "$_online" -eq 1 -a "$_alias" -eq 1 ]; then
|
if [ "$_online" -eq 1 -a "$_alias" -eq 1 ]; then
|
||||||
echo "setting DASD HyperPAV alias $(basename $dev) offline"
|
echo "setting DASD HyperPAV alias $(basename ${dev}) offline"
|
||||||
echo "0" > $dev/online
|
echo "0" > ${dev}/online
|
||||||
read _online < $dev/online
|
read _online < ${dev}/online
|
||||||
dasd_alias="$dasd_alias $(basename $dev)"
|
dasd_alias="${dasd_alias} $(basename ${dev})"
|
||||||
if [ "$_online" -eq 1 ]; then
|
if [ "$_online" -eq 1 ]; then
|
||||||
echo "failure on setting DASD HyperPAV alias $(basename $dev) offline !"
|
echo "failure on setting DASD HyperPAV alias $(basename ${dev}) offline !"
|
||||||
let EXITRC=4
|
let EXITRC=4
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -71,16 +71,16 @@ done
|
|||||||
#
|
#
|
||||||
dasd_base=
|
dasd_base=
|
||||||
for dev in /sys/bus/ccw/devices/*; do
|
for dev in /sys/bus/ccw/devices/*; do
|
||||||
if [ -f $dev/use_diag ]; then
|
if [ -f ${dev}/use_diag ]; then
|
||||||
read _online < $dev/online
|
read _online < ${dev}/online
|
||||||
read _alias < $dev/alias
|
read _alias < ${dev}/alias
|
||||||
if [ "$_online" -eq 1 -a "$_alias" -eq 0 ]; then
|
if [ "$_online" -eq 1 -a "$_alias" -eq 0 ]; then
|
||||||
echo "setting DASD $(basename $dev) offline"
|
echo "setting DASD $(basename ${dev}) offline"
|
||||||
echo "0" > $dev/online
|
echo "0" > ${dev}/online
|
||||||
read _online < $dev/online
|
read _online < ${dev}/online
|
||||||
dasd_base="$dasd_base $(basename $dev)"
|
dasd_base="${dasd_base} $(basename ${dev})"
|
||||||
if [ "$_online" -eq 1 ]; then
|
if [ "$_online" -eq 1 ]; then
|
||||||
echo "failure on setting DASD $(basename $dev) offline !"
|
echo "failure on setting DASD $(basename ${dev}) offline !"
|
||||||
let EXITRC=4
|
let EXITRC=4
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -91,46 +91,65 @@ udevadm settle
|
|||||||
|
|
||||||
module_list=
|
module_list=
|
||||||
module_test_list="dasd_diag_mod dasd_eckd_mod dasd_fba_mod dasd_mod"
|
module_test_list="dasd_diag_mod dasd_eckd_mod dasd_fba_mod dasd_mod"
|
||||||
for module in $module_test_list; do
|
for module in ${module_test_list}; do
|
||||||
if grep -q "$module" /proc/modules; then
|
if grep -q "${module}" /proc/modules; then
|
||||||
module_list="$module $module_list"
|
module_list="${module} ${module_list}"
|
||||||
: Unloading $module
|
: Unloading ${module}
|
||||||
/sbin/rmmod $module
|
/sbin/rmmod ${module}
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
udevadm settle
|
||||||
|
sleep 2
|
||||||
|
|
||||||
if [ -d /etc/udev/rules.d ]; then
|
if [ -d /etc/udev/rules.d ]; then
|
||||||
cd /etc/udev/rules.d
|
cd /etc/udev/rules.d
|
||||||
#
|
#
|
||||||
# Re-activating "normal" DASD and HyperPAV base devices
|
# Re-activating "normal" DASD and HyperPAV base devices
|
||||||
#
|
#
|
||||||
for dasd in $dasd_base; do
|
# We need to move all the DASD udev rules out from /etc/udev/rules.d
|
||||||
file="51-dasd-${dasd}.rules"
|
# because if we don't, then when the first DASD volume gets brought
|
||||||
if [ -f "$file" ] ; then
|
# back online, they are all brought back online, in a non-deterministic
|
||||||
echo Activating $dasd
|
# order, not the numeric order we expect.
|
||||||
if grep -q use_diag $file ; then
|
#
|
||||||
DASD_USE_DIAG=1
|
mv -i 41-dasd-*.rules 51-dasd-*.rules /tmp
|
||||||
else
|
cd /tmp
|
||||||
DASD_USE_DIAG=0
|
for dasd in ${dasd_base}; do
|
||||||
|
for file in 41-dasd-*-${dasd}.rules 51-dasd-${dasd}.rules; do
|
||||||
|
[ -f "${file}" ] || continue
|
||||||
|
#
|
||||||
|
# Special handling is needed for old udev rules that start with 51-
|
||||||
|
# since the chzdev command won't look for that name
|
||||||
|
#
|
||||||
|
prefix="$(echo ${file} | cut -f1 -d-)"
|
||||||
|
if [ "${prefix}" == "51" ]; then
|
||||||
|
if [ -h /sys/bus/ccw/drivers/dasd-eckd/${dasd} ]; then
|
||||||
|
mv -i ${file} 41-dasd-eckd-${dasd}.rules
|
||||||
|
elif [ -h /sys/bus/ccw/drivers/dasd-fba/${dasd} ]; then
|
||||||
|
mv -i ${file} 41-dasd-fba-${dasd}.rules
|
||||||
|
else echo "DASD volume ${dasd} is neither an ECKD or FBA device."
|
||||||
|
let EXITRC=4
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
/sbin/dasd_configure $dasd 1 $DASD_USE_DIAG
|
echo Activating ${dasd}
|
||||||
fi
|
mv -i "${file}" /etc/udev/rules.d/
|
||||||
|
/sbin/chzdev dasd --apply --configured -q --no-root-update ${dasd}
|
||||||
|
lsdasd
|
||||||
|
break
|
||||||
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
#
|
#
|
||||||
# Re-activating HyperPAV alias devices
|
# Re-activating HyperPAV alias devices
|
||||||
#
|
#
|
||||||
for dasd in $dasd_alias; do
|
for dasd in ${dasd_alias}; do
|
||||||
file="51-dasd-${dasd}.rules"
|
for file in 41-dasd-*-${dasd}.rules 51-dasd-${dasd}.rules; do
|
||||||
if [ -f "$file" ] ; then
|
[ -f "${file}" ] || continue
|
||||||
echo Activating $dasd
|
echo Activating ${dasd}
|
||||||
if grep -q use_diag $file ; then
|
mv -i "${file}" /etc/udev/rules.d/
|
||||||
DASD_USE_DIAG=1
|
/sbin/chzdev dasd --apply --configured -q --no-root-update ${dasd}
|
||||||
else
|
break
|
||||||
DASD_USE_DIAG=0
|
done
|
||||||
fi
|
|
||||||
/sbin/dasd_configure $dasd 1 $DASD_USE_DIAG
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
69
s390-tools-sles15-dbginfo-add-data-for-ps-cpprot.patch
Normal file
69
s390-tools-sles15-dbginfo-add-data-for-ps-cpprot.patch
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
Subject: [PATCH] [BZ 168517] dbginfo.sh: Extend data collection
|
||||||
|
From: Sa Liu <saliu@de.ibm.com>
|
||||||
|
|
||||||
|
Description: dbginfo.sh: Extend data collection
|
||||||
|
Symptom: This update covers various symptoms on dbginfo.sh data
|
||||||
|
collection:
|
||||||
|
- There is no data collected for docker.
|
||||||
|
- ps command does not show threads infomation.
|
||||||
|
- There is no run queue statistics and scheduler data.
|
||||||
|
- z/VM commands do not show multithread, protect
|
||||||
|
settings and SSI status.
|
||||||
|
Problem: Following problems exist:
|
||||||
|
- No analysis is possible for docker data.
|
||||||
|
- Missing thread information.
|
||||||
|
- Missing run queue statistics and scheduler data.
|
||||||
|
- Missing z/VM information.
|
||||||
|
Solution: - Extend the data collection to collect docker data
|
||||||
|
- Change ps command to show threads informaton
|
||||||
|
- Add commands to display run queue statistics and
|
||||||
|
scheduler data.
|
||||||
|
- Add z/VM commands to show multithread, protect settings
|
||||||
|
and SSI status.
|
||||||
|
Reproduction: Run this script and verify the output
|
||||||
|
Upstream-ID: -
|
||||||
|
Problem-ID: 168517
|
||||||
|
|
||||||
|
Signed-off-by: Sa Liu <saliu@de.ibm.com>
|
||||||
|
---
|
||||||
|
scripts/dbginfo.sh | 8 ++++++--
|
||||||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/scripts/dbginfo.sh
|
||||||
|
+++ b/scripts/dbginfo.sh
|
||||||
|
@@ -375,7 +375,8 @@ CMDS="uname -a\
|
||||||
|
:runlevel\
|
||||||
|
:iptables -L\
|
||||||
|
:ulimit -a\
|
||||||
|
- :ps -eo pid,tid,nlwp,policy,user,tname,ni,pri,psr,sgi_p,stat,wchan,start_time,time,pcpu,pmem,vsize,size,rss,share,command\
|
||||||
|
+ :ps -emo pid,tid,nlwp,policy,user,tname,ni,pri,psr,sgi_p,stat,wchan,start_time,time,pcpu,pmem,vsize,size,rss,share,command\
|
||||||
|
+ :ps -eHo pid,tid,nlwp,policy,user,tname,ni,pri,psr,sgi_p,stat,wchan,start_time,time,pcpu,pmem,vsize,size,rss,share,command\
|
||||||
|
:ps axX\
|
||||||
|
:dmesg -s 1048576\
|
||||||
|
:last\
|
||||||
|
@@ -470,6 +471,8 @@ VM_CMDS="q userid\
|
||||||
|
:q privclass\
|
||||||
|
:q cplevel\
|
||||||
|
:q cpservice\
|
||||||
|
+ :q cpprot user\
|
||||||
|
+ :q specex\
|
||||||
|
:q ssi\
|
||||||
|
:q cpus\
|
||||||
|
:q srm\
|
||||||
|
@@ -508,6 +511,7 @@ VM_CMDS="q userid\
|
||||||
|
:q cache\
|
||||||
|
:q nic\
|
||||||
|
:q pav\
|
||||||
|
+ :q proc\
|
||||||
|
:q proc topology\
|
||||||
|
:q mt\
|
||||||
|
:q qioass\
|
||||||
|
@@ -831,7 +835,7 @@ post_processing() {
|
||||||
|
local tmp_file
|
||||||
|
local file_name
|
||||||
|
|
||||||
|
- pr_syslog_stdout "11 of ${COLLECTION_COUNT}: Postprocessing"
|
||||||
|
+ pr_syslog_stdout "${COLLECTION_COUNT} of ${COLLECTION_COUNT}: Postprocessing"
|
||||||
|
|
||||||
|
find "${WORKPATH}etc/libvirt/qemu/" -maxdepth 1 -name "*.xml" 2>/dev/null | while IFS= read -r file_name; do
|
||||||
|
file_mtime_epoche=$(stat --format=%Y "${file_name}")
|
@ -0,0 +1,71 @@
|
|||||||
|
Subject: mon_procd: fix parsing of /proc/<pid>/stat
|
||||||
|
From: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||||
|
|
||||||
|
Description: mon_procd: fix parsing of /proc/<pid>/stat
|
||||||
|
Symptom: Wrong data from /proc/<pid>/stat for processes that contain
|
||||||
|
a ")" in their name.
|
||||||
|
Problem: The output of /proc/<pid>/stat will show the process name in
|
||||||
|
parentheses. The parsing code in read_stat() tries to filter
|
||||||
|
out the parentheses, which will go wrong when the process name
|
||||||
|
itself also contains parentheses, e.g. in an output like this:
|
||||||
|
"2421 ((sd-pam)) S 2420 2420 2420 ..."
|
||||||
|
In this case, the first closing parentheses will be taken as
|
||||||
|
end marker, and the sscanf() on the remaining string will
|
||||||
|
silently fail, leaving its values in uninitialized state and
|
||||||
|
producing wrong data.
|
||||||
|
Solution: Use strrchr() instead of strchr() to find the last closing
|
||||||
|
parentheses. Also add return value checking for sscanf() and
|
||||||
|
initialize the values to 0.
|
||||||
|
Reproduction: Use mon_procd on a system with running processes that have a
|
||||||
|
")" in their name, like "(sd-pam)".
|
||||||
|
Upstream-ID: -
|
||||||
|
Problem-ID: 169483
|
||||||
|
|
||||||
|
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
|
||||||
|
---
|
||||||
|
mon_tools/mon_procd.c | 13 ++++++++-----
|
||||||
|
1 file changed, 8 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
|
--- a/mon_tools/mon_procd.c
|
||||||
|
+++ b/mon_tools/mon_procd.c
|
||||||
|
@@ -594,17 +594,18 @@ static void cal_task_pcpu(struct task_t
|
||||||
|
*/
|
||||||
|
static int read_stat(struct task_t *task)
|
||||||
|
{
|
||||||
|
- int ppid, tty, proc;
|
||||||
|
- unsigned long flags, pri, nice;
|
||||||
|
- unsigned long long maj_flt, utime, stime, cutime, cstime;
|
||||||
|
+ unsigned long long maj_flt = 0, utime = 0, stime = 0, cutime = 0,
|
||||||
|
+ cstime = 0;
|
||||||
|
+ unsigned long flags = 0, pri = 0, nice = 0;
|
||||||
|
char *cmd_start, *cmd_end, *cmdlenp, *cmdp;
|
||||||
|
+ int ppid = 0, tty = 0, proc = 0, rc;
|
||||||
|
|
||||||
|
snprintf(fname, sizeof(fname), "/proc/%u/stat", task->pid);
|
||||||
|
if (read_file(fname, buf, sizeof(buf) - 1) == -1)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
cmd_start = strchr(buf, '(') + 1;
|
||||||
|
- cmd_end = strchr(cmd_start, ')');
|
||||||
|
+ cmd_end = strrchr(cmd_start, ')');
|
||||||
|
name_lens.cmd_len = cmd_end - cmd_start;
|
||||||
|
cmdlenp = mon_record + sizeof(struct monwrite_hdr);
|
||||||
|
cmdlenp += sizeof(struct procd_hdr);
|
||||||
|
@@ -625,7 +626,7 @@ static int read_stat(struct task_t *task
|
||||||
|
memcpy(cmdlenp, &name_lens.cmd_len, sizeof(__u16));
|
||||||
|
|
||||||
|
cmd_end += 2;
|
||||||
|
- sscanf(cmd_end,
|
||||||
|
+ rc = sscanf(cmd_end,
|
||||||
|
"%c %d %*d %*d %d %*d "
|
||||||
|
"%lu %*s %*s %Lu %*s "
|
||||||
|
"%Lu %Lu %Lu %Lu "
|
||||||
|
@@ -642,6 +643,8 @@ static int read_stat(struct task_t *task
|
||||||
|
&utime, &stime, &cutime, &cstime,
|
||||||
|
&pri, &nice,
|
||||||
|
&proc);
|
||||||
|
+ if (rc != 12)
|
||||||
|
+ syslog(LOG_ERR, "bad data in %s \n", fname);
|
||||||
|
task->ppid = (__u32)ppid;
|
||||||
|
task->tty = (__u16)tty;
|
||||||
|
task->flags = (__u32)flags;
|
@ -1,3 +1,22 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Aug 24 18:47:06 UTC 2018 - mpost@suse.com
|
||||||
|
|
||||||
|
- dasd_reload:
|
||||||
|
* Fixed several syntax errors.
|
||||||
|
* Changed the script to ensure that the DASD volume are actually
|
||||||
|
activated in device number order.
|
||||||
|
* Check for 41-dasd-<type>-<ccw>.rules in addition to the
|
||||||
|
original 51-dasd-<ccw>.rules. If an old 51-dasd-<ccw>.rules
|
||||||
|
file is found, rename it to obsolete-51-dasd-<ccw>.rules, and
|
||||||
|
use chzdev to generate a new rules file. (bsc#1103407)
|
||||||
|
- Added the following patches for bsc#1098069:
|
||||||
|
* s390-tools-sles15-dbginfo-add-data-for-ps-cpprot.patch
|
||||||
|
* s390-tools-sles15-mon_procd-fix-parsing-of-proc-pid-stat.patch
|
||||||
|
- Added the following patch (bsc#1094354)
|
||||||
|
* customize-zdev-root-update-script.patch
|
||||||
|
- Modified ctc_configure to not pass a "protcol=" parameter when
|
||||||
|
configuring LCS devices. (bsc#1096520)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed May 30 10:22:01 CEST 2018 - hare@suse.de
|
Wed May 30 10:22:01 CEST 2018 - hare@suse.de
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user