mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
dbginfo.sh: add ethtool output
This patch adds ethtool commands for network interfaces. Especially the offload settings are important. Signed-off-by: Ursula Braun <ubraun@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
36292cb166
commit
e6a3b18104
@@ -9,6 +9,7 @@ Release history for s390-tools (MIT version)
|
||||
- smc_dbg: Add support for SMC sockets
|
||||
|
||||
Changes of existing tools:
|
||||
- dbginfo: Gather ethtool related data
|
||||
|
||||
Bug Fixes:
|
||||
|
||||
|
||||
@@ -173,6 +173,9 @@ readonly OUTPUT_FILE_LSOF="${WORKPATH}open_files.out"
|
||||
# File that includes content of OSA OAT
|
||||
readonly OUTPUT_FILE_OSAOAT="${WORKPATH}osa_oat"
|
||||
|
||||
# File that includes content of Ethtool commands
|
||||
readonly OUTPUT_FILE_ETHTOOL="${WORKPATH}ethtool.out"
|
||||
|
||||
# File that includes the output of journalctl
|
||||
readonly OUTPUT_FILE_JOURNALCTL="${WORKPATH}journalctl.out"
|
||||
|
||||
@@ -192,7 +195,7 @@ readonly OUTPUT_FILE_NVME="${WORKPATH}nvme.out"
|
||||
readonly MOUNT_POINT_DEBUGFS="/sys/kernel/debug"
|
||||
|
||||
# The amount of steps running the whole collections
|
||||
readonly COLLECTION_COUNT=12
|
||||
readonly COLLECTION_COUNT=13
|
||||
|
||||
# The kernel version (e.g. '2' from 2.6.32 or '3' from 3.2.1)
|
||||
readonly KERNEL_VERSION=$(uname -r 2>/dev/null | cut -d'.' -f1)
|
||||
@@ -752,6 +755,37 @@ collect_osaoat() {
|
||||
pr_log_stdout " "
|
||||
}
|
||||
|
||||
########################################
|
||||
collect_ethtool() {
|
||||
local network_devices
|
||||
local network_device
|
||||
|
||||
network_devices=$(ls /sys/class/net 2>/dev/null)
|
||||
if which ethtool >/dev/null 2>&1; then
|
||||
if test -n "${network_devices}"; then
|
||||
pr_syslog_stdout "8 of ${COLLECTION_COUNT}: Collecting ethtool output"
|
||||
for network_device in ${network_devices}; do
|
||||
call_run_command "ethtool ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -k ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -a ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -c ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -g ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -i ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -l ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -P ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -S ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
call_run_command "ethtool -T ${network_device}" "${OUTPUT_FILE_ETHTOOL}"
|
||||
done
|
||||
else
|
||||
pr_syslog_stdout "8 of ${COLLECTION_COUNT}: Collecting ethtool output skipped - no devices"
|
||||
fi
|
||||
else
|
||||
pr_syslog_stdout "8 of ${COLLECTION_COUNT}: Collecting ethtool output skipped - not available"
|
||||
fi
|
||||
|
||||
pr_log_stdout " "
|
||||
}
|
||||
|
||||
########################################
|
||||
# OpenVSwitch
|
||||
collect_ovs() {
|
||||
@@ -768,7 +802,7 @@ collect_ovs() {
|
||||
:ovsdb-client dump\
|
||||
"
|
||||
if test -n "${br_list}"; then
|
||||
pr_syslog_stdout "8 of ${COLLECTION_COUNT}: Collecting OpenVSwitch output"
|
||||
pr_syslog_stdout "9 of ${COLLECTION_COUNT}: Collecting OpenVSwitch output"
|
||||
IFS=:
|
||||
for ovscmd in ${ovscmds}; do
|
||||
IFS=${ifs_orig} call_run_command "${ovscmd}" "${OUTPUT_FILE_OVS}.out"
|
||||
@@ -787,7 +821,7 @@ collect_ovs() {
|
||||
IFS="${ifs_orig}"
|
||||
done
|
||||
else
|
||||
pr_syslog_stdout "8 of ${COLLECTION_COUNT}: Collecting OpenVSwitch output skipped"
|
||||
pr_syslog_stdout "9 of ${COLLECTION_COUNT}: Collecting OpenVSwitch output skipped"
|
||||
fi
|
||||
|
||||
pr_log_stdout " "
|
||||
@@ -800,12 +834,12 @@ collect_domain_xml() {
|
||||
|
||||
domain_list=$(virsh list --all --name)
|
||||
if test -n "${domain_list}"; then
|
||||
pr_syslog_stdout "9 of ${COLLECTION_COUNT}: Collecting domain xml files"
|
||||
pr_syslog_stdout "10 of ${COLLECTION_COUNT}: Collecting domain xml files"
|
||||
for domain in ${domain_list}; do
|
||||
call_run_command "virsh dumpxml ${domain}" "${OUTPUT_FILE_XML}_${domain}.xml"
|
||||
done
|
||||
else
|
||||
pr_syslog_stdout "9 of ${COLLECTION_COUNT}: Collecting domain xml files skipped"
|
||||
pr_syslog_stdout "10 of ${COLLECTION_COUNT}: Collecting domain xml files skipped"
|
||||
fi
|
||||
|
||||
pr_log_stdout " "
|
||||
@@ -819,23 +853,23 @@ collect_docker() {
|
||||
# call docker inspect for all containers
|
||||
item_list=$(docker ps -qa)
|
||||
if test -n "${item_list}"; then
|
||||
pr_syslog_stdout "10a of ${COLLECTION_COUNT}: Collecting docker container output"
|
||||
pr_syslog_stdout "11a of ${COLLECTION_COUNT}: Collecting docker container output"
|
||||
for item in ${item_list}; do
|
||||
call_run_command "docker inspect ${item}" "${OUTPUT_FILE_DOCKER}"
|
||||
done
|
||||
else
|
||||
pr_syslog_stdout "10a of ${COLLECTION_COUNT}: Collecting docker container output skipped"
|
||||
pr_syslog_stdout "11a of ${COLLECTION_COUNT}: Collecting docker container output skipped"
|
||||
fi
|
||||
|
||||
# call docker inspect for all networks
|
||||
item_list=$(docker network ls -q)
|
||||
if test -n "${item_list}"; then
|
||||
pr_syslog_stdout "10b of ${COLLECTION_COUNT}: Collecting docker network output"
|
||||
pr_syslog_stdout "11b of ${COLLECTION_COUNT}: Collecting docker network output"
|
||||
for item in ${item_list}; do
|
||||
call_run_command "docker network inspect ${item}" "${OUTPUT_FILE_DOCKER}"
|
||||
done
|
||||
else
|
||||
pr_syslog_stdout "10b of ${COLLECTION_COUNT}: Collecting docker network output skipped"
|
||||
pr_syslog_stdout "11b of ${COLLECTION_COUNT}: Collecting docker network output skipped"
|
||||
fi
|
||||
|
||||
pr_log_stdout " "
|
||||
@@ -845,7 +879,7 @@ collect_docker() {
|
||||
collect_nvme() {
|
||||
local NVME
|
||||
|
||||
pr_syslog_stdout "11 of ${COLLECTION_COUNT}: Collecting nvme output"
|
||||
pr_syslog_stdout "12 of ${COLLECTION_COUNT}: Collecting nvme output"
|
||||
call_run_command "nvme list" "${OUTPUT_FILE_NVME}"
|
||||
|
||||
for NVME in /dev/nvme[0-9]*; do
|
||||
@@ -1152,6 +1186,8 @@ collect_configfiles
|
||||
|
||||
collect_osaoat
|
||||
|
||||
collect_ethtool
|
||||
|
||||
collect_ovs
|
||||
|
||||
collect_domain_xml
|
||||
|
||||
@@ -52,7 +52,7 @@ Sample invocation:
|
||||
.br
|
||||
dbginfo.sh: Debug information script version %S390_TOOLS_VERSION%
|
||||
.br
|
||||
Copyright IBM Corp. 2002, 2017
|
||||
Copyright IBM Corp. 2002, 2019
|
||||
.PP
|
||||
Hardware platform = s390x
|
||||
.br
|
||||
@@ -60,34 +60,40 @@ Kernel version = <kernel\-version>
|
||||
.br
|
||||
Runtime environment = z/VM
|
||||
.PP
|
||||
1 of 11: Collecting command output
|
||||
1 of 13: Collecting command output
|
||||
.PP
|
||||
2 of 11: Collecting z/VM command output
|
||||
2 of 13: Collecting z/VM command output
|
||||
.PP
|
||||
3 of 11: Collecting procfs
|
||||
3 of 13: Collecting procfs
|
||||
.PP
|
||||
4 of 11: Collecting sysfs
|
||||
4 of 13: Collecting sysfs
|
||||
.PP
|
||||
5 of 11: Collecting log files
|
||||
5 of 13: Collecting log files
|
||||
.PP
|
||||
6 of 11: Collecting config files
|
||||
6 of 13: Collecting config files
|
||||
.PP
|
||||
7 of 11: Collecting osa oat output skipped \- not available
|
||||
7 of 13: Collecting osa oat output skipped \- not available
|
||||
.PP
|
||||
8 of 11: Collecting OpenVSwitch output
|
||||
8 of 13: Collecting ethtool output
|
||||
.PP
|
||||
9 of 11: Collecting domain xml files
|
||||
9 of 13: Collecting OpenVSwitch output
|
||||
.PP
|
||||
10a of 11: Collecting docker container output
|
||||
10b of 11: Collecting docker network output
|
||||
10 of 13: Collecting domain xml files
|
||||
.PP
|
||||
11 of 11: Postprocessing
|
||||
11a of 13: Collecting docker container output
|
||||
11b of 13: Collecting docker network output
|
||||
.PP
|
||||
12 of 13: Collecting nvme output
|
||||
.PP
|
||||
13 of 13: Postprocessing
|
||||
.PP
|
||||
Finalizing: Creating archive with collected data
|
||||
.PP
|
||||
Collected data was saved to:
|
||||
.br
|
||||
>> /data\-collection/DBGINFO\-2015\-02\-26\-21\-39\-16\-host\-012345.tgz <<
|
||||
>> /data\-collection/DBGINFO\-2019\-08\-19\-21\-39\-16\-host\-012345.tgz <<
|
||||
.br
|
||||
Review the collected data before sending to your service organization.
|
||||
.SH HINTS
|
||||
Run the script with root authority.
|
||||
.br
|
||||
|
||||
Reference in New Issue
Block a user