Accepting request 757490 from home:ptesarik:branches:Kernel:kdump
- kdump-calibrate-Update-values.patch: calibrate: Update values. - kdump-prefer-by-path-and-device-mapper.patch: Prefer by-path and device-mapper aliases over kernel device names (bsc#1101149, LTC#168532). - kdump-powerpc-no-reload-on-CPU-removal.patch: powerpc: Do not reload on CPU hot removal (bsc#1133407, LTC#176111). - kdump-Add-force-option-to-KDUMP_NETCONFIG.patch: Add ":force" option to KDUMP_NETCONFIG (bsc#1108919). - kdump-Add-fence_kdump_send-when-fence-agents-installed.patch: Add fence_kdump_send when fence-agents installed (bsc#1108919). - kdump-FENCE_KDUMP_SEND-variable.patch: Use var for path of fence_kdump_send and remove the unnecessary PRESCRIPT check (bsc#1108919). - kdump-Document-fence_kdump_send.patch: Document kdump behaviour for fence_kdump_send (bsc#1108919). - kdump-nss-modules.patch: Improve the handling of NSS (bsc#1021846). - kdump-skip-mounts-if-no-proc-vmcore.patch: Skip kdump-related mounts if there is no /proc/vmcore (bsc#1102252, bsc#1125011). - kdump-clean-up-kdump-mount-points.patch: Make sure that kdump mount points are cleaned up (bsc#1102252, bsc#1125011). - kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch: Clean up the use of current vs. boot network interface names (bsc#1094444, bsc#1116463, bsc#1141064). - kdump-Use-a-custom-namespace-for-physical-NICs.patch: Use a custom namespace for physical NICs (bsc#1094444, bsc#1116463, bsc#1141064). - kdump-preserve-white-space.patch: Preserve white space when removing kernel command line options (bsc#1117652). OBS-URL: https://build.opensuse.org/request/show/757490 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/kdump?expand=0&rev=188
This commit is contained in:
parent
a026f6e20f
commit
8c4cc920f8
44
kdump-Add-fence_kdump_send-when-fence-agents-installed.patch
Normal file
44
kdump-Add-fence_kdump_send-when-fence-agents-installed.patch
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
From: Nick Wang <nwang@suse.com>
|
||||||
|
Date: Wed, 28 Nov 2018 18:07:56 +0800
|
||||||
|
Subject: Add fence_kdump_send when fence-agents installed.
|
||||||
|
References: bsc#1108919
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: 93822c5ee738e186a3a70f6d7a6e59bdea4b46b1
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/module-setup.sh | 5 +++++
|
||||||
|
init/setup-kdump.functions | 7 +++++++
|
||||||
|
2 files changed, 12 insertions(+)
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -25,6 +25,11 @@ kdump_check_net() {
|
||||||
|
elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
|
||||||
|
# always set up network
|
||||||
|
kdump_neednet=y
|
||||||
|
+ elif [ -f "/usr/lib/fence_kdump_send" ] &&
|
||||||
|
+ ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] || \
|
||||||
|
+ [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
|
||||||
|
+ # setup network when fence_kdump_send included and configured
|
||||||
|
+ kdump_neednet=y
|
||||||
|
else
|
||||||
|
kdump_neednet=
|
||||||
|
for protocol in "${kdump_Protocol[@]}" ; do
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -917,6 +917,13 @@ function kdump_modify_config() #
|
||||||
|
KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS ssh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ # copy fence_kdump_send if exists
|
||||||
|
+ if [ -f "/usr/lib/fence_kdump_send" ] &&
|
||||||
|
+ ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] ||
|
||||||
|
+ [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
|
||||||
|
+ KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS /usr/lib/fence_kdump_send"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
# make sure NSS works somehow
|
||||||
|
cp /etc/hosts "${dest}/etc"
|
||||||
|
{ cat <<-EOF
|
109
kdump-Add-force-option-to-KDUMP_NETCONFIG.patch
Normal file
109
kdump-Add-force-option-to-KDUMP_NETCONFIG.patch
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Tue, 20 Nov 2018 10:23:28 +0100
|
||||||
|
Subject: Add ":force" option to KDUMP_NETCONFIG
|
||||||
|
References: bsc#1108919
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit 4e112a28055a57dbcdf9a72c4bdcf586296ec81a
|
||||||
|
|
||||||
|
Make it possible to force network setup in kdump initrd by adding a
|
||||||
|
":force" suffix to KDUMP_NETCONFIG. This is needed to configure
|
||||||
|
fence_kdump.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
doc/man/kdump.5.txt.in | 6 ++++++
|
||||||
|
init/module-setup.sh | 37 +++++++++++++++++++++----------------
|
||||||
|
sysconfig.kdump.in | 6 +++++-
|
||||||
|
3 files changed, 32 insertions(+), 17 deletions(-)
|
||||||
|
|
||||||
|
--- a/doc/man/kdump.5.txt.in
|
||||||
|
+++ b/doc/man/kdump.5.txt.in
|
||||||
|
@@ -544,6 +544,12 @@ Auto-detection cannot be used to set up
|
||||||
|
because of limitations in the implementation of the _ip=_ initrd command line
|
||||||
|
option.
|
||||||
|
|
||||||
|
+Network is configured only if needed, e.g. the dump target is on a remote
|
||||||
|
+machine, or an email notification should be sent. If network is needed by
|
||||||
|
+something else, such as a custom script used as KDUMP_PRESCRIPT or
|
||||||
|
+KDUMP_POSTSCRIPT, add a _:force_ suffix to the network configuration, for
|
||||||
|
+example "auto:force" or "eth0:dhcp4:force".
|
||||||
|
+
|
||||||
|
Use a _netdevice:mode_ string to force a specific network device to be used. A
|
||||||
|
_netdevice_ is for example "eth0". The _mode_ can be:
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -19,20 +19,25 @@ kdump_needed() {
|
||||||
|
}
|
||||||
|
|
||||||
|
kdump_check_net() {
|
||||||
|
- kdump_neednet=
|
||||||
|
- for protocol in "${kdump_Protocol[@]}" ; do
|
||||||
|
- if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
|
||||||
|
- kdump_neednet=y
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
+ if [ -z "$KDUMP_NETCONFIG" ]; then
|
||||||
|
+ # network explicitly disabled in configuration
|
||||||
|
+ kdump_neednet=
|
||||||
|
+ elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
|
||||||
|
+ # always set up network
|
||||||
|
+ kdump_neednet=y
|
||||||
|
+ else
|
||||||
|
+ kdump_neednet=
|
||||||
|
+ for protocol in "${kdump_Protocol[@]}" ; do
|
||||||
|
+ if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
|
||||||
|
+ kdump_neednet=y
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
|
||||||
|
- # network configuration
|
||||||
|
- if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
|
||||||
|
- kdump_neednet=y
|
||||||
|
+ # network configuration
|
||||||
|
+ if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
|
||||||
|
+ kdump_neednet=y
|
||||||
|
+ fi
|
||||||
|
fi
|
||||||
|
-
|
||||||
|
- # network explicitly disabled in configuration?
|
||||||
|
- [ -z "$KDUMP_NETCONFIG" ] && kdump_neednet=
|
||||||
|
}
|
||||||
|
|
||||||
|
kdump_get_fs_type() {
|
||||||
|
@@ -161,13 +166,13 @@ kdump_cmdline_zfcp() {
|
||||||
|
kdump_cmdline_ip() {
|
||||||
|
[ "$kdump_neednet" = y ] || return 0
|
||||||
|
|
||||||
|
- if [ "$KDUMP_NETCONFIG" = "auto" ] ; then
|
||||||
|
+ local _cfg="${KDUMP_NETCONFIG%:force}"
|
||||||
|
+ if [ "$_cfg" = "auto" ] ; then
|
||||||
|
kdump_host_if=default
|
||||||
|
kdump_net_mode=auto
|
||||||
|
else
|
||||||
|
- set -- ${KDUMP_NETCONFIG//:/ }
|
||||||
|
- kdump_host_if=$1
|
||||||
|
- kdump_net_mode=$2
|
||||||
|
+ kdump_host_if="${_cfg%%:*}"
|
||||||
|
+ kdump_net_mode="${_cfg#*:}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$kdump_host_if" = "default" ] ; then
|
||||||
|
--- a/sysconfig.kdump.in
|
||||||
|
+++ b/sysconfig.kdump.in
|
||||||
|
@@ -294,9 +294,13 @@ KDUMPTOOL_FLAGS=""
|
||||||
|
# that contains the network device and the mode (static, dhcp, dhcp6, auto6),
|
||||||
|
# separated by a colon. Example: "eth0:static" or "eth1:dhcp".
|
||||||
|
#
|
||||||
|
-# For static configuration, you have to add the configuration to
|
||||||
|
+# For static configuration, you may have to add the configuration to
|
||||||
|
# KDUMP_COMMANDLINE_APPEND.
|
||||||
|
#
|
||||||
|
+# By default, network is set up only if needed. Add ":force" to make sure
|
||||||
|
+# that network is always available (e.g. for use by a custom pre- or
|
||||||
|
+# post-script).
|
||||||
|
+#
|
||||||
|
# See also: kdump(5)
|
||||||
|
#
|
||||||
|
KDUMP_NETCONFIG="auto"
|
152
kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch
Normal file
152
kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch
Normal file
@ -0,0 +1,152 @@
|
|||||||
|
From e32374a88bb3b1dc0c5f493d6c1966558d996c4f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Tue, 27 Nov 2018 14:52:06 +0100
|
||||||
|
Subject: Clean up the use of current vs. boot network interface names
|
||||||
|
References: bsc#1094444, bsc#1116463, bsc#1141064
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: e32374a88bb3b1dc0c5f493d6c1966558d996c4f
|
||||||
|
|
||||||
|
Strictly differentiate between the interface name as seen during
|
||||||
|
dracut execution and at boot time (in initrd environment).
|
||||||
|
|
||||||
|
Most importantly, it is necessary to store both names for generating
|
||||||
|
qeth udev rules.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/setup-kdump.functions | 51 +++++++++++++++++++++++----------------------
|
||||||
|
1 file changed, 27 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -426,9 +426,9 @@ function kdump_hwaddr() # {{{
|
||||||
|
local _type=$(<"/sys/class/net/$_iface/addr_assign_type")
|
||||||
|
if [ "$_type" -eq 0 ]
|
||||||
|
then
|
||||||
|
- cat "/sys/class/net/$kdump_iface/address"
|
||||||
|
+ cat "/sys/class/net/$_iface/address"
|
||||||
|
else
|
||||||
|
- ethtool -P "$kdump_iface" | sed 's/^[^:]*: *//'
|
||||||
|
+ ethtool -P "$_iface" | sed 's/^[^:]*: *//'
|
||||||
|
fi
|
||||||
|
} # }}}
|
||||||
|
|
||||||
|
@@ -440,42 +440,43 @@ function kdump_hwaddr() # {{{
|
||||||
|
# kdump_netif corresponding ifname= initrd parameter added
|
||||||
|
# kdump_iface device name in initrd
|
||||||
|
# kdump_kmods additional kernel modules updated
|
||||||
|
-# kdump_hwif hardware interfaces updated
|
||||||
|
+# kdump_ifmap hardware network interface map updated
|
||||||
|
function kdump_ifname_config() # {{{
|
||||||
|
{
|
||||||
|
- kdump_iface="$1"
|
||||||
|
- local ifkind=$(kdump_ifkind "$kdump_iface")
|
||||||
|
+ local _iface="$1"
|
||||||
|
+ local _ifkind=$(kdump_ifkind "$_iface")
|
||||||
|
|
||||||
|
- if [ -z "$ifkind" ]
|
||||||
|
+ if [ -z "$_ifkind" ]
|
||||||
|
then
|
||||||
|
- kdump_hwif="$kdump_hwif $kdump_iface"
|
||||||
|
- local _drv=$( readlink "/sys/class/net/$kdump_iface/device/driver" )
|
||||||
|
+ kdump_iface="$_iface"
|
||||||
|
+ kdump_ifmap="$kdump_ifmap $_iface:$kdump_iface"
|
||||||
|
|
||||||
|
+ local _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
|
||||||
|
case "$_drv" in
|
||||||
|
*/qeth)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
- local hwaddr=$(kdump_hwaddr "$kdump_iface")
|
||||||
|
+ local hwaddr=$(kdump_hwaddr "$_iface")
|
||||||
|
[ -n "$hwaddr" ] && kdump_netif="$kdump_netif ifname=$kdump_iface:$hwaddr"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
- local mod="/sys/class/net/$kdump_iface/device/driver/module"
|
||||||
|
+ local mod="/sys/class/net/$_iface/device/driver/module"
|
||||||
|
if [ -L "$mod" ]
|
||||||
|
then
|
||||||
|
mod=$(readlink "$mod")
|
||||||
|
kdump_kmods="$kdump_kmods ${mod##*/}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
- case "$ifkind" in
|
||||||
|
+ case "$_ifkind" in
|
||||||
|
bridge)
|
||||||
|
- kdump_bridge_config "$kdump_iface"
|
||||||
|
+ kdump_bridge_config "$_iface"
|
||||||
|
;;
|
||||||
|
bond)
|
||||||
|
- kdump_bond_config "$kdump_iface"
|
||||||
|
+ kdump_bond_config "$_iface"
|
||||||
|
;;
|
||||||
|
vlan)
|
||||||
|
- kdump_vlan_config "$kdump_iface"
|
||||||
|
+ kdump_vlan_config "$_iface"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
return 1
|
||||||
|
@@ -1070,13 +1071,13 @@ function kdump_filter_sysctl() #
|
||||||
|
# Set up a QETH network interface
|
||||||
|
# Parameters:
|
||||||
|
# 1) _root: initrd temporary root
|
||||||
|
-# 2) _iface: interface name
|
||||||
|
-# Input variables:
|
||||||
|
-# kdump_hwif hardware network interfaces
|
||||||
|
+# 2) _iface: current interface name
|
||||||
|
+# 3) _bootif: interface name in initrd
|
||||||
|
function kdump_setup_qeth() # {{{
|
||||||
|
{
|
||||||
|
local _root="$1"
|
||||||
|
local _iface="$2"
|
||||||
|
+ local _bootif="$3"
|
||||||
|
local _dev=$( readlink "/sys/class/net/$_iface/device" )
|
||||||
|
_dev="${_dev##*/}"
|
||||||
|
local _cdev0=$( readlink "/sys/class/net/$_iface/device/cdev0" )
|
||||||
|
@@ -1113,8 +1114,8 @@ ACTION=="add", SUBSYSTEM=="ccwgroup", KE
|
||||||
|
ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{online}="1"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
- cat >"${_root}/etc/udev/rules.d/70-persistent-net-${_iface}.rules" <<EOF
|
||||||
|
-SUBSYSTEM=="net", ACTION=="add", DRIVERS=="qeth"$_dev_id_match, KERNELS=="$_dev", ATTR{type}=="$_type", NAME="$_iface"
|
||||||
|
+ cat >"${_root}/etc/udev/rules.d/70-persistent-net-${_bootif}.rules" <<EOF
|
||||||
|
+SUBSYSTEM=="net", ACTION=="add", DRIVERS=="qeth"$_dev_id_match, KERNELS=="$_dev", ATTR{type}=="$_type", NAME="$_bootif"
|
||||||
|
EOF
|
||||||
|
} # }}}
|
||||||
|
|
||||||
|
@@ -1123,18 +1124,20 @@ EOF
|
||||||
|
# Parameters:
|
||||||
|
# 1) _root: initrd temporary root
|
||||||
|
# Input variables:
|
||||||
|
-# kdump_hwif hardware network interfaces
|
||||||
|
+# kdump_ifmap hardware network interface map
|
||||||
|
function kdump_setup_hwif() # {{{
|
||||||
|
{
|
||||||
|
local _root="$1"
|
||||||
|
- local _iface _drv
|
||||||
|
+ local _spec _iface _bootif _drv
|
||||||
|
|
||||||
|
- for _iface in $kdump_hwif
|
||||||
|
+ for _spec in $kdump_ifmap
|
||||||
|
do
|
||||||
|
+ _iface="${_spec%:*}"
|
||||||
|
+ _bootif="${_spec##*:}"
|
||||||
|
_drv=$( readlink "/sys/class/net/$_iface/device/driver" )
|
||||||
|
case "$_drv" in
|
||||||
|
*/qeth)
|
||||||
|
- kdump_setup_qeth "$_root" "$_iface"
|
||||||
|
+ kdump_setup_qeth "$_root" "$_iface" "$_bootif"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
@@ -1149,7 +1152,7 @@ function kdump_setup_hwif() # {{
|
||||||
|
# Input variables:
|
||||||
|
# KDUMP_* see kdump_get_config
|
||||||
|
# kdump_mnt[] mountpoints in kdump environment
|
||||||
|
-# kdump_hwif hardware network interfaces
|
||||||
|
+# kdump_ifmap hardware network interface map
|
||||||
|
# Output variables:
|
||||||
|
# KDUMP_REQUIRED_PROGRAMS updated as necessary
|
||||||
|
function kdump_setup_files() # {{{
|
30
kdump-Document-fence_kdump_send.patch
Normal file
30
kdump-Document-fence_kdump_send.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Fri, 30 Nov 2018 09:29:10 +0100
|
||||||
|
Subject: Document kdump behaviour for fence_kdump_send
|
||||||
|
References: bsc#1108919
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: dcbe901dbec7d0b5e70014564da5a34f673e2248
|
||||||
|
|
||||||
|
Add an explanation paragraph to the manual page.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
doc/man/kdump.5.txt.in | 6 +++++-
|
||||||
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/doc/man/kdump.5.txt.in
|
||||||
|
+++ b/doc/man/kdump.5.txt.in
|
||||||
|
@@ -483,7 +483,11 @@ KDUMP_POSTSCRIPT
|
||||||
|
~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Program that is executed after taking the dump and before the system is
|
||||||
|
-rebooted. You have to include that program in KDUMP_POSTSCRIPT.
|
||||||
|
+rebooted. You have to include that program in KDUMP_REQUIRED_PROGRAMS.
|
||||||
|
+
|
||||||
|
+As a special case, if KDUMP_POSTSCRIPT contains +/usr/lib/fence_kdump_send+,
|
||||||
|
+this script is automatically added to the initrd, and network is configured by
|
||||||
|
+default.
|
||||||
|
|
||||||
|
Default: ""
|
||||||
|
|
52
kdump-FENCE_KDUMP_SEND-variable.patch
Normal file
52
kdump-FENCE_KDUMP_SEND-variable.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
From: Nick Wang <nwang@suse.com>
|
||||||
|
Date: Fri, 30 Nov 2018 10:03:17 +0800
|
||||||
|
Subject: Use var for path of fence_kdump_send and remove the unnecessary PRESCRIPT check
|
||||||
|
References: bsc#1108919
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: f69533d0d8e974b8c27a2c9a651fb9e98c16194b
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/module-setup.sh | 5 ++---
|
||||||
|
init/setup-kdump.functions | 8 ++++----
|
||||||
|
2 files changed, 6 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -25,9 +25,8 @@ kdump_check_net() {
|
||||||
|
elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
|
||||||
|
# always set up network
|
||||||
|
kdump_neednet=y
|
||||||
|
- elif [ -f "/usr/lib/fence_kdump_send" ] &&
|
||||||
|
- ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] || \
|
||||||
|
- [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
|
||||||
|
+ elif [ -f "$FENCE_KDUMP_SEND" ] &&
|
||||||
|
+ [[ $KDUMP_POSTSCRIPT =~ "$FENCE_KDUMP_SEND" ]] ; then
|
||||||
|
# setup network when fence_kdump_send included and configured
|
||||||
|
kdump_neednet=y
|
||||||
|
else
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -10,6 +10,7 @@
|
||||||
|
#
|
||||||
|
|
||||||
|
KDUMP_CONFIG=/etc/sysconfig/kdump
|
||||||
|
+FENCE_KDUMP_SEND=/usr/lib/fence_kdump_send
|
||||||
|
|
||||||
|
#
|
||||||
|
# Global variables
|
||||||
|
@@ -918,10 +919,9 @@ function kdump_modify_config() #
|
||||||
|
fi
|
||||||
|
|
||||||
|
# copy fence_kdump_send if exists
|
||||||
|
- if [ -f "/usr/lib/fence_kdump_send" ] &&
|
||||||
|
- ( [[ $KDUMP_PRESCRIPT =~ "fence_kdump_send" ]] ||
|
||||||
|
- [[ $KDUMP_POSTSCRIPT =~ "fence_kdump_send" ]] ) ; then
|
||||||
|
- KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS /usr/lib/fence_kdump_send"
|
||||||
|
+ if [ -f "$FENCE_KDUMP_SEND" ] &&
|
||||||
|
+ [[ $KDUMP_POSTSCRIPT =~ "$FENCE_KDUMP_SEND" ]] ; then
|
||||||
|
+ KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS $FENCE_KDUMP_SEND"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# make sure NSS works somehow
|
43
kdump-Use-a-custom-namespace-for-physical-NICs.patch
Normal file
43
kdump-Use-a-custom-namespace-for-physical-NICs.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From c5a6c610e1b3b4ce34a8769b7772a682fb826bda Mon Sep 17 00:00:00 2001
|
||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Thu, 29 Nov 2018 12:54:57 +0100
|
||||||
|
Subject: Use a custom namespace for physical NICs
|
||||||
|
References: bsc#1094444, bsc#1116463, bsc#1141064
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: c5a6c610e1b3b4ce34a8769b7772a682fb826bda
|
||||||
|
|
||||||
|
To prevent rename conflicts, use kdumpX as the interface name
|
||||||
|
instead of the current name.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/setup-kdump.functions | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -11,6 +11,13 @@
|
||||||
|
|
||||||
|
KDUMP_CONFIG=/etc/sysconfig/kdump
|
||||||
|
|
||||||
|
+#
|
||||||
|
+# Global variables
|
||||||
|
+#
|
||||||
|
+
|
||||||
|
+# Next network interface number
|
||||||
|
+kdump_ifnum=0
|
||||||
|
+
|
||||||
|
# Extract the device name from a route
|
||||||
|
#
|
||||||
|
# Input:
|
||||||
|
@@ -448,7 +455,8 @@ function kdump_ifname_config() #
|
||||||
|
|
||||||
|
if [ -z "$_ifkind" ]
|
||||||
|
then
|
||||||
|
- kdump_iface="$_iface"
|
||||||
|
+ kdump_iface="kdump$kdump_ifnum"
|
||||||
|
+ kdump_ifnum=$(( $kdump_ifnum + 1 ))
|
||||||
|
kdump_ifmap="$kdump_ifmap $_iface:$kdump_iface"
|
||||||
|
|
||||||
|
local _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
|
144
kdump-calibrate-Update-values.patch
Normal file
144
kdump-calibrate-Update-values.patch
Normal file
@ -0,0 +1,144 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Tue, 17 Dec 2019 10:49:19 +0100
|
||||||
|
Subject: calibrate: Update values
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: 898b9e7fb7f80bd19268678b4abaf74792a3c229
|
||||||
|
|
||||||
|
Kernel base image has grown by approx. 20%.
|
||||||
|
Unpacked initramfs has grown by approx. 50%.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
kdumptool/calibrate.cc | 56 ++++++++++++++++++++++++-------------------------
|
||||||
|
1 file changed, 28 insertions(+), 28 deletions(-)
|
||||||
|
|
||||||
|
--- a/kdumptool/calibrate.cc
|
||||||
|
+++ b/kdumptool/calibrate.cc
|
||||||
|
@@ -58,10 +58,10 @@
|
||||||
|
//
|
||||||
|
|
||||||
|
#if defined(__x86_64__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(32)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(38)
|
||||||
|
# define KERNEL_INIT_KB MB(5)
|
||||||
|
-# define INIT_KB MB(34)
|
||||||
|
+# define INIT_KB MB(51)
|
||||||
|
# define INIT_NET_KB MB(3)
|
||||||
|
# define SIZE_STRUCT_PAGE 64
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
@@ -69,10 +69,10 @@
|
||||||
|
# define PERCPU_KB 108
|
||||||
|
|
||||||
|
#elif defined(__i386__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(28)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(34)
|
||||||
|
# define KERNEL_INIT_KB MB(4)
|
||||||
|
-# define INIT_KB MB(29)
|
||||||
|
+# define INIT_KB MB(44)
|
||||||
|
# define INIT_NET_KB MB(2)
|
||||||
|
# define SIZE_STRUCT_PAGE 36
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
@@ -80,10 +80,10 @@
|
||||||
|
# define PERCPU_KB 56
|
||||||
|
|
||||||
|
#elif defined(__powerpc64__)
|
||||||
|
-# define DEF_RESERVE_KB MB(256)
|
||||||
|
-# define KERNEL_KB MB(32)
|
||||||
|
+# define DEF_RESERVE_KB MB(384)
|
||||||
|
+# define KERNEL_KB MB(38)
|
||||||
|
# define KERNEL_INIT_KB MB(5)
|
||||||
|
-# define INIT_KB MB(58)
|
||||||
|
+# define INIT_KB MB(87)
|
||||||
|
# define INIT_NET_KB MB(4)
|
||||||
|
# define SIZE_STRUCT_PAGE 64
|
||||||
|
# define KDUMP_PHYS_LOAD MB(128)
|
||||||
|
@@ -91,10 +91,10 @@
|
||||||
|
# define PERCPU_KB 172 // FIXME: is it non-linear?
|
||||||
|
|
||||||
|
#elif defined(__powerpc__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(24)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(29)
|
||||||
|
# define KERNEL_INIT_KB MB(5)
|
||||||
|
-# define INIT_KB MB(34)
|
||||||
|
+# define INIT_KB MB(51)
|
||||||
|
# define INIT_NET_KB MB(2)
|
||||||
|
# define SIZE_STRUCT_PAGE 36
|
||||||
|
# define KDUMP_PHYS_LOAD MB(128)
|
||||||
|
@@ -102,10 +102,10 @@
|
||||||
|
# define PERCPU_KB 0 // TODO !!!
|
||||||
|
|
||||||
|
#elif defined(__s390x__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(26)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(31)
|
||||||
|
# define KERNEL_INIT_KB 512
|
||||||
|
-# define INIT_KB MB(34)
|
||||||
|
+# define INIT_KB MB(51)
|
||||||
|
# define INIT_NET_KB MB(2)
|
||||||
|
# define SIZE_STRUCT_PAGE 64
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
@@ -115,10 +115,10 @@
|
||||||
|
# define align_memmap s390x_align_memmap
|
||||||
|
|
||||||
|
#elif defined(__s390__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(24)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(29)
|
||||||
|
# define KERNEL_INIT_KB 512
|
||||||
|
-# define INIT_KB MB(29)
|
||||||
|
+# define INIT_KB MB(44)
|
||||||
|
# define INIT_NET_KB MB(2)
|
||||||
|
# define SIZE_STRUCT_PAGE 36
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
@@ -128,10 +128,10 @@
|
||||||
|
# define align_memmap s390_align_memmap
|
||||||
|
|
||||||
|
#elif defined(__ia64__)
|
||||||
|
-# define DEF_RESERVE_KB MB(512)
|
||||||
|
-# define KERNEL_KB MB(64)
|
||||||
|
+# define DEF_RESERVE_KB MB(768)
|
||||||
|
+# define KERNEL_KB MB(77)
|
||||||
|
# define KERNEL_INIT_KB MB(3)
|
||||||
|
-# define INIT_KB MB(44)
|
||||||
|
+# define INIT_KB MB(66)
|
||||||
|
# define INIT_NET_KB MB(4)
|
||||||
|
# define SIZE_STRUCT_PAGE 64
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
@@ -139,21 +139,21 @@
|
||||||
|
# define PERCPU_KB 0 // TODO !!!
|
||||||
|
|
||||||
|
#elif defined(__aarch64__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(26)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(31)
|
||||||
|
# define KERNEL_INIT_KB MB(1)
|
||||||
|
-# define INIT_KB MB(29)
|
||||||
|
-# define INIT_NET_KB MB(2)
|
||||||
|
+# define INIT_KB MB(51)
|
||||||
|
+# define INIT_NET_KB MB(3)
|
||||||
|
# define SIZE_STRUCT_PAGE 64
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
||||||
|
# define CAN_REDUCE_CPUS 1
|
||||||
|
# define PERCPU_KB 0 // TODO !!!
|
||||||
|
|
||||||
|
#elif defined(__arm__)
|
||||||
|
-# define DEF_RESERVE_KB MB(128)
|
||||||
|
-# define KERNEL_KB MB(24)
|
||||||
|
+# define DEF_RESERVE_KB MB(192)
|
||||||
|
+# define KERNEL_KB MB(29)
|
||||||
|
# define KERNEL_INIT_KB MB(1)
|
||||||
|
-# define INIT_KB MB(29)
|
||||||
|
+# define INIT_KB MB(44)
|
||||||
|
# define INIT_NET_KB MB(2)
|
||||||
|
# define SIZE_STRUCT_PAGE 36
|
||||||
|
# define KDUMP_PHYS_LOAD 0
|
41
kdump-clean-up-kdump-mount-points.patch
Normal file
41
kdump-clean-up-kdump-mount-points.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Mon, 2 Sep 2019 10:01:47 +0200
|
||||||
|
Subject: Make sure that kdump mount points are cleaned up
|
||||||
|
References: bsc#1102252, bsc#1125011
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit 83e48556428339668e6f23e1dccc0196a52d1b68
|
||||||
|
|
||||||
|
If the system continues to boot, kdump mount points must be
|
||||||
|
unmounted before switching to the system root. Otherwise, some
|
||||||
|
filesystems may remain mounted under the now-unavailable initrd
|
||||||
|
root, keeping the underlying devices busy during system shutdown.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/module-setup.sh | 14 +++++++++++++-
|
||||||
|
1 file changed, 13 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -246,7 +246,19 @@ install() {
|
||||||
|
gsub(/@KDUMP_MOUNTPOINTS@/, mountpoints)
|
||||||
|
print
|
||||||
|
}' "$moddir/kdump-save.service.in" > \
|
||||||
|
- "$initdir/$systemdsystemunitdir"/kdump-save.service
|
||||||
|
+ "$initdir/$systemdsystemunitdir"/kdump-save.service
|
||||||
|
+
|
||||||
|
+ local _d _mp
|
||||||
|
+ _d="$initdir/$systemdsystemunitdir"/initrd-switch-root.target.d
|
||||||
|
+ mkdir -p "$_d"
|
||||||
|
+ (
|
||||||
|
+ echo "[Unit]"
|
||||||
|
+ for _mp in "${kdump_mnt[@]}" ; do
|
||||||
|
+ echo -n "Conflicts="
|
||||||
|
+ systemd-escape -p --suffix=mount "$_mp"
|
||||||
|
+ done
|
||||||
|
+ ) > "$_d"/kdump.conf
|
||||||
|
+
|
||||||
|
ln_r "$systemdsystemunitdir"/kdump-save.service \
|
||||||
|
"$systemdsystemunitdir"/initrd.target.wants/kdump-save.service
|
||||||
|
else
|
@ -1,7 +1,7 @@
|
|||||||
From: Petr Tesarik <ptesarik@suse.com>
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
Date: Thu, 25 Oct 2018 10:02:43 +0200
|
Date: Thu, 25 Oct 2018 10:02:43 +0200
|
||||||
Subject: Fix multipath configuration with user_friendly_names and/or aliases
|
Subject: Fix multipath configuration with user_friendly_names and/or aliases
|
||||||
References: bsc#1111207, LTC#171953, bsc#1125218, LTC#175465
|
References: bsc#1111207, LTC#171953, bsc#1125218, LTC#175465, bsc#1153601
|
||||||
Upstream: merged
|
Upstream: merged
|
||||||
Git-commit: 4b4dacfddd456a51c04a878e31d4544223ea9701
|
Git-commit: 4b4dacfddd456a51c04a878e31d4544223ea9701
|
||||||
|
|
||||||
|
67
kdump-nss-modules.patch
Normal file
67
kdump-nss-modules.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Thu, 14 Nov 2019 19:13:39 +0100
|
||||||
|
Subject: Improve the handling of NSS
|
||||||
|
References: bsc#1021846
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit 598d7517ccbbf29dc51e0a9c14146722d2324731
|
||||||
|
|
||||||
|
The current code mostly works, but can be improved in two ways:
|
||||||
|
|
||||||
|
1. Only the 'hosts' database is really needed in the kdump
|
||||||
|
environment, and its settings should be copied from the running
|
||||||
|
system. The openSSH client also needs 'passwd' (and maybe
|
||||||
|
'group'), but it is not necessary to handle fancy setups (such
|
||||||
|
as NIS or AD). The client merely requires that UID 0 can be
|
||||||
|
translated to a user name. The 'file' service is more than
|
||||||
|
sufficient for that purpose.
|
||||||
|
|
||||||
|
2. The NSS configuration file may not contain configuration of all
|
||||||
|
categories. If configuration for a given category is missing,
|
||||||
|
glibc will use a default setting, but kdump will not install
|
||||||
|
the corresponding modules. Fix it by adding the glibc default
|
||||||
|
to the configuration file explicitly if needed.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/setup-kdump.functions | 22 ++++++++++++++++++++--
|
||||||
|
1 file changed, 20 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -892,8 +892,6 @@ function kdump_modify_config() #
|
||||||
|
KDUMP_SAVEDIR="${KDUMP_SAVEDIR}file://${kdump_Realpath[i]}"
|
||||||
|
elif [ "$protocol" != "srcfile" ] ; then
|
||||||
|
KDUMP_SAVEDIR="${KDUMP_SAVEDIR}${kdump_URL[i]}"
|
||||||
|
- cp /etc/hosts "${dest}/etc"
|
||||||
|
- grep '^hosts:' /etc/nsswitch.conf > "${dest}/etc/nsswitch.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
@@ -919,6 +917,26 @@ function kdump_modify_config() #
|
||||||
|
KDUMP_REQUIRED_PROGRAMS="$KDUMP_REQUIRED_PROGRAMS ssh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
+ # make sure NSS works somehow
|
||||||
|
+ cp /etc/hosts "${dest}/etc"
|
||||||
|
+ { cat <<-EOF
|
||||||
|
+ passwd: files
|
||||||
|
+ shadow: files
|
||||||
|
+ group: files
|
||||||
|
+EOF
|
||||||
|
+ grep '^[[:space:]]*hosts:' /etc/nsswitch.conf \
|
||||||
|
+ || echo 'hosts: dns [!UNAVAIL=return] files'
|
||||||
|
+ } > "${dest}/etc/nsswitch.conf"
|
||||||
|
+
|
||||||
|
+ # install necessary NSS modules
|
||||||
|
+ local _nssmods=$(
|
||||||
|
+ sed -e 's/#.*//; s/^[^:]*://; s/\[[^]]*\]//' \
|
||||||
|
+ "${dest}/etc/nsswitch.conf" \
|
||||||
|
+ | tr -s '[:space:]' '\n' | sort -u | tr '\n' '|' )
|
||||||
|
+ _nssmods=${_nssmods#|}
|
||||||
|
+ _nssmods=${_nssmods%|}
|
||||||
|
+ inst_libdir_file -n "/libnss_($_nssmods)" 'libnss_*.so*'
|
||||||
|
+
|
||||||
|
#
|
||||||
|
# dump the configuration file, modifying:
|
||||||
|
# KDUMP_SAVEDIR -> resolved path
|
33
kdump-powerpc-no-reload-on-CPU-removal.patch
Normal file
33
kdump-powerpc-no-reload-on-CPU-removal.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Fri, 6 Dec 2019 09:54:57 +0100
|
||||||
|
Subject: powerpc: Do not reload on CPU hot removal
|
||||||
|
References: bsc#1133407, LTC#176111
|
||||||
|
Git-commit: d1c4f630f0da0bf43928e3c975f02e832b2df50f
|
||||||
|
|
||||||
|
Skipping reload after a CPU goes offline does not have any adverse
|
||||||
|
impact, as /sys/devices/system/cpu/cpuX nodes are present for all
|
||||||
|
"possible" CPUs on PPC64.
|
||||||
|
|
||||||
|
The udev rule for CPU online operation is still needed. If reload
|
||||||
|
is skipped and the system crashes on a hot-added CPU, the kdump
|
||||||
|
kernel fails to get the 'boot_cpuid' after a hot plug and
|
||||||
|
eventually fails (see early_init_dt_scan_cpus() in
|
||||||
|
arch/powerpc/kernel/prom.c file).
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
70-kdump.rules.in | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/70-kdump.rules.in
|
||||||
|
+++ b/70-kdump.rules.in
|
||||||
|
@@ -13,7 +13,7 @@
|
||||||
|
|
||||||
|
SUBSYSTEM=="memory", ACTION=="add|remove", GOTO="kdump_try_restart"
|
||||||
|
@if @ARCH@ ppc ppc64 ppc64le
|
||||||
|
-SUBSYSTEM=="cpu", ACTION=="online|offline", GOTO="kdump_try_restart"
|
||||||
|
+SUBSYSTEM=="cpu", ACTION=="online", GOTO="kdump_try_restart"
|
||||||
|
@endif
|
||||||
|
|
||||||
|
GOTO="kdump_end"
|
86
kdump-prefer-by-path-and-device-mapper.patch
Normal file
86
kdump-prefer-by-path-and-device-mapper.patch
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Mon, 16 Dec 2019 13:33:19 +0100
|
||||||
|
Subject: Prefer by-path and device-mapper aliases over kernel names
|
||||||
|
References: bsc#1101149, LTC#168532
|
||||||
|
Upsream: merged
|
||||||
|
Git-commit: f153c9ac3f1baf8d1cf66c901b41f7bff19ff528
|
||||||
|
|
||||||
|
Mounting by kernel names (e.g. /dev/sda) is generally broken, since
|
||||||
|
these names are allocated dynamically by the kernel and may change
|
||||||
|
after a panic kexec. This issue can be usually avoided by using a
|
||||||
|
more stable tag in /etc/fstab (e.g. UUID=xyz).
|
||||||
|
|
||||||
|
However, there are supported ways to mount a filesystem with no
|
||||||
|
corresponding line in /etc/fstab, and kdump uses /proc/mounts as
|
||||||
|
fallback. This file shows the block device using the name that was
|
||||||
|
given as argument to the mount syscall. This name is usually
|
||||||
|
translated to the kernel name by libblkid(3). As a result, it does
|
||||||
|
not reflect the original intention, e.g.:
|
||||||
|
|
||||||
|
ezekiel:~ # mount UUID=9A4D-9B2B /mnt/data/
|
||||||
|
ezekiel:~ # grep /mnt/data /proc/mounts
|
||||||
|
/dev/sda /mnt/data vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro 0 0
|
||||||
|
ezekiel:~ # grep /mnt/data /proc/self/mountinfo
|
||||||
|
187 94 8:0 / /mnt/data rw,relatime shared:56 - vfat /dev/sda rw,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro
|
||||||
|
|
||||||
|
As the original intention cannot be recovered, it is probably
|
||||||
|
better to prefer the by-path alias. The semantic of this alias is
|
||||||
|
closest to the traditional UNIX use of raw block device names: it's
|
||||||
|
always the drive attached to a known physical connector, regardless
|
||||||
|
of which medium is inserted.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/module-setup.sh | 3 ++-
|
||||||
|
init/setup-kdump.functions | 27 +++++++++++++++++++++++++++
|
||||||
|
2 files changed, 29 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -90,7 +90,8 @@ kdump_add_mnt() {
|
||||||
|
mkdir -p "$initdir/etc"
|
||||||
|
local _passno=2
|
||||||
|
[ "${kdump_fstype[_idx]}" = nfs ] && _passno=0
|
||||||
|
- echo "${kdump_dev[_idx]} ${kdump_mnt[_idx]} ${kdump_fstype[_idx]} ${kdump_opts[_idx]} 0 $_passno" >> "$initdir/etc/fstab"
|
||||||
|
+ _dev=$(kdump_mount_dev "${kdump_dev[_idx]}")
|
||||||
|
+ echo "$_dev ${kdump_mnt[_idx]} ${kdump_fstype[_idx]} ${kdump_opts[_idx]} 0 $_passno" >> "$initdir/etc/fstab"
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
--- a/init/setup-kdump.functions
|
||||||
|
+++ b/init/setup-kdump.functions
|
||||||
|
@@ -716,6 +716,33 @@ function kdump_get_targets() # {
|
||||||
|
} # }}}
|
||||||
|
|
||||||
|
#
|
||||||
|
+# Get a block device specification that is suitable for use as the
|
||||||
|
+# first column in /etc/fstab.
|
||||||
|
+# Since device node names may change after kexec, more stable symlink
|
||||||
|
+# are preferred (by-path alias or device mapper name).
|
||||||
|
+# Parameters:
|
||||||
|
+# 1) _dev: block device specification
|
||||||
|
+# Output:
|
||||||
|
+# block device specification to be used in /etc/fstab
|
||||||
|
+function kdump_mount_dev() # {{{
|
||||||
|
+{
|
||||||
|
+ local _dev="$1"
|
||||||
|
+
|
||||||
|
+ if [ ! -L "$_dev" -a -b "$_dev" ] ; then
|
||||||
|
+ local _symlink
|
||||||
|
+ for _symlink in $(udevadm info --root --query=symlink "$_dev")
|
||||||
|
+ do
|
||||||
|
+ case "$_symlink" in
|
||||||
|
+ */by-path/*|*/mapper/*)
|
||||||
|
+ _dev="$_symlink"
|
||||||
|
+ break
|
||||||
|
+ esac
|
||||||
|
+ done
|
||||||
|
+ fi
|
||||||
|
+ echo "$_dev"
|
||||||
|
+} # }}}
|
||||||
|
+
|
||||||
|
+#
|
||||||
|
# Read and normalize /etc/fstab and /proc/mounts (if exists).
|
||||||
|
# The following transformations are done:
|
||||||
|
# - initial TABs and SPACEs are removed
|
48
kdump-preserve-white-space.patch
Normal file
48
kdump-preserve-white-space.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Tue, Nov 12 2019 14:53:37 +0100
|
||||||
|
Subject: Preserve white space when removing kernel command line options
|
||||||
|
References: bsc#1117652
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit: 23d593b54a9c97a204ea7412e53c60d3d3852cab
|
||||||
|
|
||||||
|
The function was originally designed to remove unwanted options
|
||||||
|
from the panic kernel command line. It is now also used to check
|
||||||
|
whether the current command line contains a fadump option or not,
|
||||||
|
but the check is broken, because remove_from_commandline() may
|
||||||
|
change the amount (and type) of white space. For example, it
|
||||||
|
always adds an extra space if the original string ends with a
|
||||||
|
space.
|
||||||
|
|
||||||
|
Modify the function to copy original separators verbatim, except
|
||||||
|
that any white space preceding the removed option is removed.
|
||||||
|
|
||||||
|
Fixes: a4718a2c7b714d0594903fc8dc5ae47252a9b9ba
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/load.sh | 12 +++++-------
|
||||||
|
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
|
--- a/init/load.sh
|
||||||
|
+++ b/init/load.sh
|
||||||
|
@@ -17,15 +17,13 @@ function remove_from_commandline()
|
||||||
|
awk 'BEGIN { ORS="" }
|
||||||
|
{
|
||||||
|
while(length()) {
|
||||||
|
- sub(/^[[:space:]]+/,"");
|
||||||
|
- pstart=match($0,/("[^"]*"?|[^"[:space:]])+/);
|
||||||
|
- plength=RLENGTH;
|
||||||
|
- param=substr($0,pstart,plength);
|
||||||
|
- raw=param;
|
||||||
|
+ match($0,/^([[:space:]]*)(.*)/,w);
|
||||||
|
+ match(w[2],/(("[^"]*"?|[^"[:space:]])+)(.*)/,p);
|
||||||
|
+ raw=p[1];
|
||||||
|
gsub(/"/,"",raw);
|
||||||
|
if (raw !~ /^('"$option"')(=|$)/)
|
||||||
|
- print param " ";
|
||||||
|
- $0=substr($0,pstart+plength);
|
||||||
|
+ print w[1] p[1];
|
||||||
|
+ $0=p[3];
|
||||||
|
}
|
||||||
|
print "\n";
|
||||||
|
}'
|
40
kdump-skip-mounts-if-no-proc-vmcore.patch
Normal file
40
kdump-skip-mounts-if-no-proc-vmcore.patch
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
From: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
Date: Mon, 2 Sep 2019 15:27:24 +0200
|
||||||
|
Subject: Skip kdump-related mounts if there is no /proc/vmcore
|
||||||
|
References: bsc#1102252, bsc#1125011
|
||||||
|
Upstream: merged
|
||||||
|
Git-commit b91c1e16d373e5631ce725acf52db097d8248389
|
||||||
|
|
||||||
|
With FADUMP, the same initrd is used for saving a dump and for
|
||||||
|
normal boot. It is not necessary to mount kdump-related filesystems
|
||||||
|
on a normal boot, so let's add a systemd condition.
|
||||||
|
|
||||||
|
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||||
|
|
||||||
|
---
|
||||||
|
init/module-setup.sh | 9 +++++++--
|
||||||
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
--- a/init/module-setup.sh
|
||||||
|
+++ b/init/module-setup.sh
|
||||||
|
@@ -249,13 +249,18 @@ install() {
|
||||||
|
"$initdir/$systemdsystemunitdir"/kdump-save.service
|
||||||
|
|
||||||
|
local _d _mp
|
||||||
|
+ local _mnt
|
||||||
|
_d="$initdir/$systemdsystemunitdir"/initrd-switch-root.target.d
|
||||||
|
mkdir -p "$_d"
|
||||||
|
(
|
||||||
|
echo "[Unit]"
|
||||||
|
for _mp in "${kdump_mnt[@]}" ; do
|
||||||
|
- echo -n "Conflicts="
|
||||||
|
- systemd-escape -p --suffix=mount "$_mp"
|
||||||
|
+ _mnt=$(systemd-escape -p --suffix=mount "$_mp")
|
||||||
|
+ _d="$initdir/$systemdsystemunitdir/$_mnt".d
|
||||||
|
+ mkdir -p "$_d"
|
||||||
|
+ echo -e "[Unit]\nConditionPathExists=/proc/vmcore" \
|
||||||
|
+ > "$_d"/kdump.conf
|
||||||
|
+ echo "Conflicts=$_mnt"
|
||||||
|
done
|
||||||
|
) > "$_d"/kdump.conf
|
||||||
|
|
@ -1,3 +1,64 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 17 10:00:30 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-calibrate-Update-values.patch: calibrate: Update values.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Dec 17 09:59:08 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-prefer-by-path-and-device-mapper.patch: Prefer by-path and
|
||||||
|
device-mapper aliases over kernel device names (bsc#1101149,
|
||||||
|
LTC#168532).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 13 15:11:32 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-powerpc-no-reload-on-CPU-removal.patch: powerpc: Do not
|
||||||
|
reload on CPU hot removal (bsc#1133407, LTC#176111).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 13 14:04:26 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-Add-force-option-to-KDUMP_NETCONFIG.patch: Add ":force"
|
||||||
|
option to KDUMP_NETCONFIG (bsc#1108919).
|
||||||
|
- kdump-Add-fence_kdump_send-when-fence-agents-installed.patch: Add
|
||||||
|
fence_kdump_send when fence-agents installed (bsc#1108919).
|
||||||
|
- kdump-FENCE_KDUMP_SEND-variable.patch: Use var for path of
|
||||||
|
fence_kdump_send and remove the unnecessary PRESCRIPT check
|
||||||
|
(bsc#1108919).
|
||||||
|
- kdump-Document-fence_kdump_send.patch: Document kdump behaviour
|
||||||
|
for fence_kdump_send (bsc#1108919).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 9 09:57:37 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-nss-modules.patch: Improve the handling of NSS
|
||||||
|
(bsc#1021846).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 9 09:54:01 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-skip-mounts-if-no-proc-vmcore.patch: Skip kdump-related
|
||||||
|
mounts if there is no /proc/vmcore (bsc#1102252, bsc#1125011).
|
||||||
|
- kdump-clean-up-kdump-mount-points.patch: Make sure that kdump
|
||||||
|
mount points are cleaned up (bsc#1102252, bsc#1125011).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 6 16:50:06 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch:
|
||||||
|
Clean up the use of current vs. boot network interface names
|
||||||
|
(bsc#1094444, bsc#1116463, bsc#1141064).
|
||||||
|
- kdump-Use-a-custom-namespace-for-physical-NICs.patch: Use a
|
||||||
|
custom namespace for physical NICs (bsc#1094444, bsc#1116463,
|
||||||
|
bsc#1141064).
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Dec 6 10:49:48 UTC 2019 - Petr Tesařík <ptesarik@suse.com>
|
||||||
|
|
||||||
|
- kdump-preserve-white-space.patch: Preserve white space when
|
||||||
|
removing kernel command line options (bsc#1117652).
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Nov 12 08:11:26 UTC 2019 - Jiri Slaby <jslaby@suse.com>
|
Tue Nov 12 08:11:26 UTC 2019 - Jiri Slaby <jslaby@suse.com>
|
||||||
|
|
||||||
|
30
kdump.spec
30
kdump.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package kdump
|
# spec file for package kdump
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2019 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -43,7 +43,7 @@ Release: 0
|
|||||||
Summary: Script for kdump
|
Summary: Script for kdump
|
||||||
License: GPL-2.0-or-later
|
License: GPL-2.0-or-later
|
||||||
Group: System/Kernel
|
Group: System/Kernel
|
||||||
Url: https://github.com/openSUSE/kdump
|
URL: https://github.com/openSUSE/kdump
|
||||||
Source: %{name}-%{version}.tar.bz2
|
Source: %{name}-%{version}.tar.bz2
|
||||||
Source2: %{name}-rpmlintrc
|
Source2: %{name}-rpmlintrc
|
||||||
Patch1: %{name}-fillupdir-fixes.patch
|
Patch1: %{name}-fillupdir-fixes.patch
|
||||||
@ -63,6 +63,19 @@ Patch14: %{name}-fix-multipath-user_friendly_names.patch
|
|||||||
Patch15: %{name}-Add-skip_balance-option-to-BTRFS-mounts.patch
|
Patch15: %{name}-Add-skip_balance-option-to-BTRFS-mounts.patch
|
||||||
Patch16: %{name}-kdumprd-Look-for-boot-image-and-boot-Image.patch
|
Patch16: %{name}-kdumprd-Look-for-boot-image-and-boot-Image.patch
|
||||||
Patch17: %{name}-savedump-search-also-for-vmlinux.xz.patch
|
Patch17: %{name}-savedump-search-also-for-vmlinux.xz.patch
|
||||||
|
Patch18: %{name}-preserve-white-space.patch
|
||||||
|
Patch19: %{name}-Clean-up-the-use-of-current-vs-boot-network-iface.patch
|
||||||
|
Patch20: %{name}-Use-a-custom-namespace-for-physical-NICs.patch
|
||||||
|
Patch21: %{name}-clean-up-kdump-mount-points.patch
|
||||||
|
Patch22: %{name}-skip-mounts-if-no-proc-vmcore.patch
|
||||||
|
Patch23: %{name}-nss-modules.patch
|
||||||
|
Patch24: %{name}-Add-force-option-to-KDUMP_NETCONFIG.patch
|
||||||
|
Patch25: %{name}-Add-fence_kdump_send-when-fence-agents-installed.patch
|
||||||
|
Patch26: %{name}-FENCE_KDUMP_SEND-variable.patch
|
||||||
|
Patch27: %{name}-Document-fence_kdump_send.patch
|
||||||
|
Patch28: %{name}-powerpc-no-reload-on-CPU-removal.patch
|
||||||
|
Patch29: %{name}-prefer-by-path-and-device-mapper.patch
|
||||||
|
Patch30: %{name}-calibrate-Update-values.patch
|
||||||
BuildRequires: asciidoc
|
BuildRequires: asciidoc
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
@ -137,6 +150,19 @@ after a crash dump has occured.
|
|||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch16 -p1
|
%patch16 -p1
|
||||||
%patch17 -p1
|
%patch17 -p1
|
||||||
|
%patch18 -p1
|
||||||
|
%patch19 -p1
|
||||||
|
%patch20 -p1
|
||||||
|
%patch21 -p1
|
||||||
|
%patch22 -p1
|
||||||
|
%patch23 -p1
|
||||||
|
%patch24 -p1
|
||||||
|
%patch25 -p1
|
||||||
|
%patch26 -p1
|
||||||
|
%patch27 -p1
|
||||||
|
%patch28 -p1
|
||||||
|
%patch29 -p1
|
||||||
|
%patch30 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
export CFLAGS="%{optflags}"
|
export CFLAGS="%{optflags}"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user