forked from pool/kdump
Accepting request 507135 from Kernel:kdump
1 OBS-URL: https://build.opensuse.org/request/show/507135 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/kdump?expand=0&rev=89
This commit is contained in:
commit
8da1550b87
124
kdump-activate-QETH-devices.patch
Normal file
124
kdump-activate-QETH-devices.patch
Normal file
@ -0,0 +1,124 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Thu Jun 29 18:11:52 2017 +0200
|
||||
Subject: Activate QETH network devices
|
||||
References: bsc#1038669
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 2288f2b56fec0298fdf21ff7a5dd03157d12242e
|
||||
|
||||
Take care of activating QETH devices in the kdump environment, because
|
||||
dracut does not do it automatically.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
init/setup-kdump.functions | 72 +++++++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 72 insertions(+)
|
||||
|
||||
--- a/init/setup-kdump.functions
|
||||
+++ b/init/setup-kdump.functions
|
||||
@@ -457,6 +457,7 @@ function kdump_vlan_config() # {
|
||||
# kdump_netif corresponding ifname= initrd parameter added
|
||||
# kdump_iface device name in initrd
|
||||
# kdump_kmods additional kernel modules updated
|
||||
+# kdump_hwif hardware interfaces updated
|
||||
function kdump_ifname_config() # {{{
|
||||
{
|
||||
kdump_iface="$1"
|
||||
@@ -464,6 +465,8 @@ function kdump_ifname_config() #
|
||||
|
||||
if [ -z "$ifkind" ]
|
||||
then
|
||||
+ kdump_hwif="$kdump_hwif $kdump_iface"
|
||||
+
|
||||
local hwaddr
|
||||
local addrtype=$(<"/sys/class/net/$kdump_iface/addr_assign_type")
|
||||
if [ "$addrtype" -eq 0 ]
|
||||
@@ -1038,6 +1041,69 @@ 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
|
||||
+function kdump_setup_qeth() # {{{
|
||||
+{
|
||||
+ local _root="$1"
|
||||
+ local _iface="$2"
|
||||
+ local _dev=$( readlink "/sys/class/net/$_iface/device" )
|
||||
+ _dev="${_dev##*/}"
|
||||
+ local _cdev0=$( readlink "/sys/class/net/$_iface/device/cdev0" )
|
||||
+ _cdev0="${_cdev0##*/}"
|
||||
+ local _cdev1=$( readlink "/sys/class/net/$_iface/device/cdev1" )
|
||||
+ _cdev1="${_cdev1##*/}"
|
||||
+ local _cdev2=$( readlink "/sys/class/net/$_iface/device/cdev2" )
|
||||
+ _cdev2="${_cdev2##*/}"
|
||||
+ local _layer2=$(</sys/class/net/$_iface/device/layer2)
|
||||
+ local _portno=$(</sys/class/net/$_iface/device/portno)
|
||||
+
|
||||
+ cat >"${_root}/etc/udev/rules.d/51-qeth-${_dev}.rules" <<EOF
|
||||
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev0", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev1", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="add", SUBSYSTEM=="ccw", KERNEL=="$_cdev2", IMPORT{program}="collect $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="remove", SUBSYSTEM=="drivers", KERNEL=="qeth", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev0", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev1", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+ACTION=="remove", SUBSYSTEM=="ccw", KERNEL=="$_cdev2", IMPORT{program}="collect --remove $_dev %k $_cdev0 $_cdev1 $_cdev2 qeth"
|
||||
+TEST=="[ccwgroup/$_dev]", GOTO="qeth-${_dev}-end"
|
||||
+ACTION=="add", SUBSYSTEM=="ccw", ENV{COLLECT_$_dev}=="0", ATTR{[drivers/ccwgroup:qeth]group}="$_cdev0,$_cdev1,$_cdev2"
|
||||
+ACTION=="add", SUBSYSTEM=="drivers", KERNEL=="qeth", ENV{COLLECT_$_dev}=="0", ATTR{[drivers/ccwgroup:qeth]group}="$_cdev0,$_cdev1,$_cdev2"
|
||||
+LABEL="qeth-$_dev-end"
|
||||
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{portno}="$_portno"
|
||||
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{layer2}="$_layer2"
|
||||
+ACTION=="add", SUBSYSTEM=="ccwgroup", KERNEL=="$_dev", ATTR{online}="1"
|
||||
+EOF
|
||||
+} # }}}
|
||||
+
|
||||
+#
|
||||
+# Set up hardware network interfaces
|
||||
+# Parameters:
|
||||
+# 1) _root: initrd temporary root
|
||||
+# Input variables:
|
||||
+# kdump_hwif hardware network interfaces
|
||||
+function kdump_setup_hwif() # {{{
|
||||
+{
|
||||
+ local _root="$1"
|
||||
+ local _iface _drv
|
||||
+
|
||||
+ for _iface in $kdump_hwif
|
||||
+ do
|
||||
+ _drv=$( readlink "/sys/class/net/$_iface/device/driver" )
|
||||
+ case "$_drv" in
|
||||
+ */qeth)
|
||||
+ kdump_setup_qeth "$_root" "$_iface"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done
|
||||
+} # }}}
|
||||
+
|
||||
+#
|
||||
# Set up or create all necessary files
|
||||
# Parameters:
|
||||
# 1) outdir: initrd temporary root
|
||||
@@ -1046,6 +1112,7 @@ function kdump_filter_sysctl() #
|
||||
# Input variables:
|
||||
# KDUMP_* see kdump_get_config
|
||||
# kdump_mnt[] mountpoints in kdump environment
|
||||
+# kdump_hwif hardware network interfaces
|
||||
# Output variables:
|
||||
# KDUMP_REQUIRED_PROGRAMS updated as necessary
|
||||
function kdump_setup_files() # {{{
|
||||
@@ -1087,5 +1154,10 @@ function kdump_setup_files() # {
|
||||
#
|
||||
kdump_filter_sysctl "$outdir"
|
||||
|
||||
+ #
|
||||
+ # set up hardware interfaces
|
||||
+ #
|
||||
+ kdump_setup_hwif "$outdir"
|
||||
+
|
||||
return 0
|
||||
} # }}}
|
25
kdump-do-not-check-bind-mount.patch
Normal file
25
kdump-do-not-check-bind-mount.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Wed Jun 21 15:31:21 2017 +0200
|
||||
Subject: Do not request filesystem check on bind mounts
|
||||
References: bsc#1034169
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 395a14377816a19678da481cafdf2332e0b0c932
|
||||
|
||||
When creating fstab for kdump bind mounts the dump and fsck fields are not
|
||||
specified. These should be 0 because the directory which is bind-mounted cannot
|
||||
be checked nor dumped.
|
||||
|
||||
Reported-by: Neil Brown <nfbrown@suse.com>
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
--- kdump-0.8.16/init/module-setup.sh~ 2017-06-01 16:56:11.765609113 +0200
|
||||
+++ kdump-0.8.16/init/module-setup.sh 2017-06-01 16:58:31.295723256 +0200
|
||||
@@ -168,7 +168,7 @@
|
||||
do
|
||||
line=( ${fstab_lines[i]} )
|
||||
if [ "${line[1]%/*}" = "/kdump" ] ; then
|
||||
- fstab_lines[i]="/sysroot ${line[1]} none bind"
|
||||
+ fstab_lines[i]="/sysroot ${line[1]} none bind 0 0"
|
||||
fi
|
||||
done
|
||||
fi
|
@ -0,0 +1,31 @@
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Wed Jun 21 15:25:49 2017 +0200
|
||||
Subject: Do not free fadump memory when reboot is requested
|
||||
References: bsc#1040610
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 653f8c0931c638cbb0bd5c22fc0e1dfd7969b29a
|
||||
|
||||
Freeing fadump memory can take a long time and doing it when we are going to
|
||||
reboot anyway is pointless.
|
||||
|
||||
In bsc#1034169 a kernel oops is triggered by freeing fadump memory killing
|
||||
save_dump.sh and preventing the reboot requested by the user from happening
|
||||
entirely.
|
||||
|
||||
Avoid the issue and speed up reboot by not freeing fadump memory when reboot is
|
||||
requested.
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
--- kdump-0.8.16/init/save_dump.sh~ 2017-06-16 13:59:02.017110055 +0200
|
||||
+++ kdump-0.8.16/init/save_dump.sh 2017-06-16 13:59:35.629621303 +0200
|
||||
@@ -49,7 +49,8 @@
|
||||
|
||||
if fadump_enabled; then
|
||||
# release memory if possible
|
||||
- test -f $FADUMP_RELEASE_MEM && echo 1 > $FADUMP_RELEASE_MEM
|
||||
+ [ -f $FADUMP_RELEASE_MEM -a $KDUMP_IMMEDIATE_REBOOT != "yes" \
|
||||
+ -a "$KDUMP_IMMEDIATE_REBOOT" != "YES" ] && echo 1 > $FADUMP_RELEASE_MEM
|
||||
if [ "$KDUMP_FADUMP_SHELL" = "yes" \
|
||||
-o "$KDUMP_FADUMP_SHELL" = "YES" ] ; then
|
||||
echo
|
58
kdump-explicitly-request-zFCP-devices.patch
Normal file
58
kdump-explicitly-request-zFCP-devices.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Fri Jun 23 14:53:50 2017 +0200
|
||||
Subject: Explicitly request zFCP devices in kdump initrd
|
||||
References: bsc#1008352
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 81899709e4a12bea4819d4ccc10f960cb535b447
|
||||
|
||||
When using NPIV with LUN autoscan, dracut does not save the port and
|
||||
LUN information. However, LUN autoscan is always disabled in kdump
|
||||
environment, so the LUNs will never appear.
|
||||
|
||||
To fix this case, the full information must be saved explicitly in a
|
||||
kdump initrd.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
init/module-setup.sh | 22 ++++++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
--- a/init/module-setup.sh
|
||||
+++ b/init/module-setup.sh
|
||||
@@ -81,6 +81,25 @@ kdump_add_mpath_dev() {
|
||||
fi
|
||||
}
|
||||
|
||||
+kdump_cmdline_zfcp() {
|
||||
+ is_zfcp() {
|
||||
+ local _dev=$1
|
||||
+ local _devpath=$(cd -P /sys/dev/block/$_dev ; echo $PWD)
|
||||
+ local _sdev _lun _wwpn _ccw
|
||||
+
|
||||
+ [ "${_devpath#*/sd}" == "$_devpath" ] && return 1
|
||||
+ _sdev="${_devpath%%/block/*}"
|
||||
+ [ -e ${_sdev}/fcp_lun ] || return 1
|
||||
+ _ccw=$(cat ${_sdev}/hba_id)
|
||||
+ _lun=$(cat ${_sdev}/fcp_lun)
|
||||
+ _wwpn=$(cat ${_sdev}/wwpn)
|
||||
+ echo "rd.zfcp=${_ccw},${_wwpn},${_lun}"
|
||||
+ }
|
||||
+ [[ $hostonly ]] || [[ $mount_needs ]] && {
|
||||
+ for_each_host_dev_and_slaves_all is_zfcp
|
||||
+ } | sort -u
|
||||
+}
|
||||
+
|
||||
kdump_cmdline_ip() {
|
||||
[ "$kdump_neednet" = y ] || return 0
|
||||
|
||||
@@ -142,6 +161,9 @@ kdump_gen_mount_units() {
|
||||
}
|
||||
|
||||
cmdline() {
|
||||
+ local _arch=$(uname -m)
|
||||
+ [ "$_arch" = "s390" -o "$_arch" = "s390x" ] && kdump_cmdline_zfcp
|
||||
+
|
||||
kdump_cmdline_ip
|
||||
}
|
||||
|
40
kdump-fail-if-fadump-cannot-be-registered.patch
Normal file
40
kdump-fail-if-fadump-cannot-be-registered.patch
Normal file
@ -0,0 +1,40 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Mon Jun 26 13:22:10 2017 +0200
|
||||
Subject: Fail at startup if fadump cannot be registered
|
||||
References: bsc#1040567
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 99a38e490012da75d83efb83385d42edbea100e9
|
||||
|
||||
If writing "1" into /sys/kernel/fadump_registered fails for whatever
|
||||
reason, do not return success.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
diff --git a/init/load.sh b/init/load.sh
|
||||
index 1894551..4fc7a82 100755
|
||||
--- a/init/load.sh
|
||||
+++ b/init/load.sh
|
||||
@@ -241,17 +241,19 @@ function load_kdump_fadump()
|
||||
fi
|
||||
|
||||
local msg
|
||||
+ local result=0
|
||||
|
||||
# The kernel fails with EINVAL if registered already
|
||||
# (see bnc#814780)
|
||||
- if [ $(cat "$FADUMP_REGISTERED") != "1" ] ; then
|
||||
- local output=$( (echo 1 > "$FADUMP_REGISTERED") 2>&1)
|
||||
- local result=$?
|
||||
+ if [ "$(cat $FADUMP_REGISTERED)" != "1" ] ; then
|
||||
+ local output
|
||||
|
||||
- if [ $result -eq 0 ] ; then
|
||||
+ output=$( (echo 1 > "$FADUMP_REGISTERED") 2>&1)
|
||||
+ if [ $? -eq 0 ] ; then
|
||||
msg="Registered fadump"
|
||||
else
|
||||
msg="FAILED to register fadump: $output"
|
||||
+ result=1
|
||||
fi
|
||||
else
|
||||
msg="fadump is already registered"
|
80
kdump-fix-save_dump-to-NFS.patch
Normal file
80
kdump-fix-save_dump-to-NFS.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Thu Jun 22 14:23:02 2017 +0200
|
||||
Subject: Fix save_dump to NFS targets
|
||||
References: bsc#1045541
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 11d36a645ab99c9805f9fa3ca9eabce3aa2a9418
|
||||
|
||||
For NFS, the parent directory of the target must be mounted, because
|
||||
the target directory itself does not exist yet.
|
||||
|
||||
For this to work, split the target path to directory (i.e. parent
|
||||
directory) and basename. Then construct a unique mount point from the
|
||||
host name and the parent directory, and finally append the base name
|
||||
again to form a subdirectory in the target (to be created by the file
|
||||
transfer method).
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
kdumptool/transfer.cc | 24 +++++++++++-------------
|
||||
kdumptool/transfer.h | 4 +---
|
||||
2 files changed, 12 insertions(+), 16 deletions(-)
|
||||
|
||||
--- a/kdumptool/transfer.cc
|
||||
+++ b/kdumptool/transfer.cc
|
||||
@@ -462,22 +462,20 @@ RootDirURL NFSTransfer::translate(const
|
||||
if (!rt.check(config->KDUMP_NET_TIMEOUT.value()))
|
||||
cerr << "WARNING: Dump target not reachable" << endl;
|
||||
|
||||
- string mountedDir = parser.getPath();
|
||||
- FileUtil::nfsmount(parser.getHostname(), mountedDir,
|
||||
- DEFAULT_MOUNTPOINT, options);
|
||||
-
|
||||
+ FilePath path = parser.getPath();
|
||||
+ string mountedDir = path.dirName();
|
||||
+ string rest = path.baseName();
|
||||
|
||||
m_mountpoint = DEFAULT_MOUNTPOINT;
|
||||
- m_rest = parser.getPath();
|
||||
- m_rest.replace(m_rest.begin(), m_rest.begin() + mountedDir.size(), "");
|
||||
- m_rest.ltrim("/");
|
||||
+ m_mountpoint.appendPath(parser.getHostname()).appendPath(mountedDir);
|
||||
+ m_mountpoint.mkdir(true);
|
||||
+ Debug::debug()->dbg("Path: %s, Mountpoint: %s, Rest: %s",
|
||||
+ path.c_str(), m_mountpoint.c_str(), rest.c_str());
|
||||
|
||||
- (m_prefix = m_mountpoint).appendPath(m_rest);
|
||||
-
|
||||
- Debug::debug()->dbg("Mountpoint: %s, Rest: %s, Prefix: $s",
|
||||
- m_mountpoint.c_str(), m_rest.c_str(), m_prefix.c_str());
|
||||
+ FileUtil::nfsmount(parser.getHostname(), mountedDir,
|
||||
+ m_mountpoint, options);
|
||||
|
||||
- return RootDirURL("file://" + m_prefix, "");
|
||||
+ return RootDirURL("file://" + m_mountpoint + PATH_SEPARATOR + rest, "");
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@@ -507,7 +505,7 @@ void NFSTransfer::close()
|
||||
throw (KError)
|
||||
{
|
||||
Debug::debug()->trace("NFSTransfer::close()");
|
||||
- if (m_mountpoint.size() > 0) {
|
||||
+ if (!m_mountpoint.empty()) {
|
||||
FileUtil::umount(m_mountpoint);
|
||||
m_mountpoint.clear();
|
||||
}
|
||||
--- a/kdumptool/transfer.h
|
||||
+++ b/kdumptool/transfer.h
|
||||
@@ -271,9 +271,7 @@ class NFSTransfer : public URLTransfer {
|
||||
|
||||
|
||||
private:
|
||||
- std::string m_mountpoint;
|
||||
- KString m_rest;
|
||||
- FilePath m_prefix;
|
||||
+ FilePath m_mountpoint;
|
||||
FileTransfer *m_fileTransfer;
|
||||
};
|
||||
|
27
kdump-invoke-subcommand-destructors-on-exit.patch
Normal file
27
kdump-invoke-subcommand-destructors-on-exit.patch
Normal file
@ -0,0 +1,27 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Thu Jun 22 14:31:26 2017 +0200
|
||||
Subject: Invoke subcommand destructors on exit
|
||||
References: bsc#1045541
|
||||
Upstream: v0.8.17
|
||||
Git-commit: ff813cdc274caf7c006d438dbf30d83413bb896e
|
||||
|
||||
To execute the destructor for a subcommand, the object must be
|
||||
explicitly freed in KdumpTool destructor. This fixes a bug that
|
||||
NFS shares are not unmounted on exit.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
kdumptool/kdumptool.cc | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/kdumptool/kdumptool.cc
|
||||
+++ b/kdumptool/kdumptool.cc
|
||||
@@ -67,6 +67,7 @@ KdumpTool::~KdumpTool()
|
||||
throw ()
|
||||
{
|
||||
Debug::debug()->trace("KdumpTool::~KdumpTool()");
|
||||
+ delete m_subcommand;
|
||||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
139
kdump-move-class-SystemCPU-to-header-file.patch
Normal file
139
kdump-move-class-SystemCPU-to-header-file.patch
Normal file
@ -0,0 +1,139 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Fri Jun 23 13:19:41 2017 +0200
|
||||
Subject: Move class SystemCPU to a header file
|
||||
References: bsc#1036223
|
||||
Upstream: v0.8.17
|
||||
Git-commit: ded0d2117cce72fc98a7ca9ee577090889ef9b16
|
||||
|
||||
This allows to reuse the class outside of calibrate.cc.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
kdumptool/calibrate.cc | 47 ---------------------------------------------
|
||||
kdumptool/calibrate.h | 51 +++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
2 files changed, 51 insertions(+), 47 deletions(-)
|
||||
|
||||
--- a/kdumptool/calibrate.cc
|
||||
+++ b/kdumptool/calibrate.cc
|
||||
@@ -251,53 +251,6 @@ using std::ifstream;
|
||||
|
||||
//{{{ SystemCPU ----------------------------------------------------------------
|
||||
|
||||
-class SystemCPU {
|
||||
-
|
||||
- public:
|
||||
- /**
|
||||
- * Initialize a new SystemCPU object.
|
||||
- *
|
||||
- * @param[in] sysdir Mount point for sysfs
|
||||
- */
|
||||
- SystemCPU(const char *sysdir = "/sys")
|
||||
- throw ()
|
||||
- : m_cpudir(FilePath(sysdir).appendPath("devices/system/cpu"))
|
||||
- {}
|
||||
-
|
||||
- protected:
|
||||
- /**
|
||||
- * Path to the cpu system devices base directory
|
||||
- */
|
||||
- const FilePath m_cpudir;
|
||||
-
|
||||
- /**
|
||||
- * Count the number of CPUs in a cpuset
|
||||
- *
|
||||
- * @param[in] name Name of the cpuset ("possible", "present", "online")
|
||||
- *
|
||||
- * @exception KError if the file cannot be opened or parsed
|
||||
- */
|
||||
- unsigned long count(const char *name);
|
||||
-
|
||||
- public:
|
||||
- /**
|
||||
- * Count the number of online CPUs
|
||||
- *
|
||||
- * @exception KError see @c count()
|
||||
- */
|
||||
- unsigned long numOnline(void)
|
||||
- { return count("online"); }
|
||||
-
|
||||
- /**
|
||||
- * Count the number of offline CPUs
|
||||
- *
|
||||
- * @exception KError see @c count()
|
||||
- */
|
||||
- unsigned long numOffline(void)
|
||||
- { return count("offline"); }
|
||||
-
|
||||
-};
|
||||
-
|
||||
// -----------------------------------------------------------------------------
|
||||
unsigned long SystemCPU::count(const char *name)
|
||||
{
|
||||
--- a/kdumptool/calibrate.h
|
||||
+++ b/kdumptool/calibrate.h
|
||||
@@ -20,6 +20,7 @@
|
||||
#define CALIBRATE_H
|
||||
|
||||
#include "subcommand.h"
|
||||
+#include "fileutil.h"
|
||||
|
||||
//{{{ Calibrate ----------------------------------------------------------------
|
||||
|
||||
@@ -54,6 +55,56 @@ class Calibrate : public Subcommand {
|
||||
};
|
||||
|
||||
//}}}
|
||||
+//{{{ SystemCPU ----------------------------------------------------------------
|
||||
+
|
||||
+class SystemCPU {
|
||||
+
|
||||
+ public:
|
||||
+ /**
|
||||
+ * Initialize a new SystemCPU object.
|
||||
+ *
|
||||
+ * @param[in] sysdir Mount point for sysfs
|
||||
+ */
|
||||
+ SystemCPU(const char *sysdir = "/sys")
|
||||
+ throw ()
|
||||
+ : m_cpudir(FilePath(sysdir).appendPath("devices/system/cpu"))
|
||||
+ {}
|
||||
+
|
||||
+ protected:
|
||||
+ /**
|
||||
+ * Path to the cpu system devices base directory
|
||||
+ */
|
||||
+ const FilePath m_cpudir;
|
||||
+
|
||||
+ /**
|
||||
+ * Count the number of CPUs in a cpuset
|
||||
+ *
|
||||
+ * @param[in] name Name of the cpuset ("possible", "present", "online")
|
||||
+ *
|
||||
+ * @exception KError if the file cannot be opened or parsed
|
||||
+ */
|
||||
+ unsigned long count(const char *name);
|
||||
+
|
||||
+ public:
|
||||
+ /**
|
||||
+ * Count the number of online CPUs
|
||||
+ *
|
||||
+ * @exception KError see @c count()
|
||||
+ */
|
||||
+ unsigned long numOnline(void)
|
||||
+ { return count("online"); }
|
||||
+
|
||||
+ /**
|
||||
+ * Count the number of offline CPUs
|
||||
+ *
|
||||
+ * @exception KError see @c count()
|
||||
+ */
|
||||
+ unsigned long numOffline(void)
|
||||
+ { return count("offline"); }
|
||||
+
|
||||
+};
|
||||
+
|
||||
+//}}}
|
||||
|
||||
#endif /* CALIBRATE_H */
|
||||
|
116
kdump-multithreading-by-default.patch
Normal file
116
kdump-multithreading-by-default.patch
Normal file
@ -0,0 +1,116 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Fri Jun 23 13:47:28 2017 +0200
|
||||
Subject: Multithreading by default
|
||||
References: bsc#1036223
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 07534f44546e37c65a08fe7fb093255fbca6cd30
|
||||
|
||||
The "--num-threads" and "--split" makedumpfile options are mutually
|
||||
exclusive. Before multithreading was implemented, "--split" was the
|
||||
only way to use any additional CPUs. It makes more sense to use
|
||||
multithreading by default.
|
||||
|
||||
To use "--split", the SPLIT flag can be specified.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
doc/man/kdump.5.txt.in | 16 +++++++++++-----
|
||||
kdumptool/savedump.cc | 17 +++++++++++++++++
|
||||
kdumptool/savedump.h | 1 +
|
||||
sysconfig.kdump.in | 5 +++--
|
||||
4 files changed, 32 insertions(+), 7 deletions(-)
|
||||
|
||||
--- a/doc/man/kdump.5.txt.in
|
||||
+++ b/doc/man/kdump.5.txt.in
|
||||
@@ -513,11 +513,17 @@ This is a space-separated list of flags
|
||||
Because SFTP and FTP are not mounted, that option has no meaning when saving
|
||||
the dump to SFTP and FTP.
|
||||
|
||||
-*NOSPLIT*::
|
||||
- Disable the _--split_ option of *makedumpfile*(8). This option is normally
|
||||
- added when KDUMP_CPUS>1, because otherwise the additional CPUs are idle.
|
||||
- You can specify this flag to force the use of only one dumping process,
|
||||
- regardless of the value of KDUMP_CPUS.
|
||||
+*SPLIT*::
|
||||
+ If KDUMP_CPUS>1, use the _--split_ option of *makedumpfile*(8) instead of
|
||||
+ the default _--num-threads_.
|
||||
+
|
||||
+*SINGLE*::
|
||||
+ Specify this flag to force the use of only one CPU for dumping, regardless
|
||||
+ of the value of KDUMP_CPUS.
|
||||
+ It disables the _--split_ and _--num-threads_ options of *makedumpfile*(8).
|
||||
+
|
||||
+ For compatibility with older versions, *NOSPLIT* is an alias for *SINGLE*.
|
||||
+ Its use is deprecated.
|
||||
|
||||
*XENALLDOMAINS*::
|
||||
When dumping a Xen virtualization host, *makedumpfile*(8) is normally
|
||||
--- a/kdumptool/savedump.cc
|
||||
+++ b/kdumptool/savedump.cc
|
||||
@@ -291,11 +291,24 @@ void SaveDump::saveDump(const RootDirURL
|
||||
cpus = syscpu.numOnline();
|
||||
}
|
||||
if (!config->kdumptoolContainsFlag("NOSPLIT") &&
|
||||
+ !config->kdumptoolContainsFlag("SINGLE") &&
|
||||
cpus > 1) {
|
||||
if (!useElf)
|
||||
m_split = cpus;
|
||||
else
|
||||
cerr << "Splitting ELF dumps is not supported." << endl;
|
||||
+
|
||||
+ if (config->kdumptoolContainsFlag("SPLIT")) {
|
||||
+ if (!useElf)
|
||||
+ m_split = cpus;
|
||||
+ else
|
||||
+ cerr << "Splitting ELF dumps is not supported." << endl;
|
||||
+ } else {
|
||||
+ if (!useElf)
|
||||
+ m_threads = cpus - 1;
|
||||
+ else
|
||||
+ cerr << "Multithreading is unavailable for ELF dumps" << endl;
|
||||
+ }
|
||||
}
|
||||
|
||||
bool excludeDomU = false;
|
||||
@@ -313,6 +326,10 @@ void SaveDump::saveDump(const RootDirURL
|
||||
cmdline << "makedumpfile ";
|
||||
if (m_split)
|
||||
cmdline << "--split ";
|
||||
+ if (m_threads) {
|
||||
+ SystemCPU syscpu;
|
||||
+ cmdline << "--num-threads " << m_threads << " ";
|
||||
+ }
|
||||
cmdline << config->MAKEDUMPFILE_OPTIONS.value() << " ";
|
||||
cmdline << "-d " << config->KDUMP_DUMPLEVEL.value() << " ";
|
||||
if (excludeDomU)
|
||||
--- a/kdumptool/savedump.h
|
||||
+++ b/kdumptool/savedump.h
|
||||
@@ -113,6 +113,7 @@ class SaveDump : public Subcommand {
|
||||
bool m_usedDirectSave;
|
||||
bool m_useMakedumpfile;
|
||||
unsigned long m_split;
|
||||
+ unsigned long m_threads;
|
||||
std::string m_crashtime;
|
||||
std::string m_crashrelease;
|
||||
std::string m_rootdir;
|
||||
--- a/sysconfig.kdump.in
|
||||
+++ b/sysconfig.kdump.in
|
||||
@@ -271,14 +271,15 @@ KDUMP_POSTSCRIPT=""
|
||||
#
|
||||
KDUMP_COPY_KERNEL="yes"
|
||||
|
||||
-## Type: string(NOSPARSE,NOSPLIT,XENALLDOMAINS)
|
||||
+## Type: string(NOSPARSE,SPLIT,SINGLE,XENALLDOMAINS)
|
||||
## Default: ""
|
||||
## ServiceRestart: kdump
|
||||
#
|
||||
# Space-separated list of flags to tweak the run-time behaviour of kdumptool:
|
||||
#
|
||||
# NOSPARSE disable creation of sparse files.
|
||||
-# NOSPLIT do not pass "--split" to makedumpfile even if KDUMP_CPUS > 1
|
||||
+# SPLIT split the dump file with "makedumpfile --split"
|
||||
+# SINGLE use single CPU to save the dump
|
||||
# XENALLDOMAINS do not filter out Xen DomU pages
|
||||
#
|
||||
# See also: kdump(5).
|
69
kdump-remount-sysroot-readwrite.patch
Normal file
69
kdump-remount-sysroot-readwrite.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Wed Jun 21 15:23:30 2017 +0200
|
||||
Subject: Remount /sysroot readwrite when used for kdump
|
||||
References: bsc#1034169
|
||||
Upstream: v0.8.17
|
||||
Git-commit: b3e40e6cb5794e441ddabf1de88f3729ebd0cc6f
|
||||
|
||||
When kdump is saved to / (ie /var is not separate filesystem) /kdump/mnt0 is
|
||||
bind mount of readonly /sysroot. Due to mount bug "mount /kdump/mnt0 -o
|
||||
remount,rw" does nothing.
|
||||
|
||||
Remount the device by hand with "mount none /kdump/mnt0 -o remount,rw" which
|
||||
avoids the bug.
|
||||
|
||||
Based on patch by Neil Brown <nfbrown@suse.com>
|
||||
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
--- kdump-0.8.16/init/save_dump.sh~ 2017-06-15 14:47:33.059006747 +0200
|
||||
+++ kdump-0.8.16/init/save_dump.sh 2017-06-15 14:47:42.827155243 +0200
|
||||
@@ -127,13 +127,38 @@
|
||||
check_for_device "$@"
|
||||
}
|
||||
|
||||
+function rw_fixup()
|
||||
+{
|
||||
+ # handle remounting existing readonly mounts readwrite
|
||||
+ # mount -a works only for not yet mounted filesystems
|
||||
+ # remounting bind mounts needs special incantation
|
||||
+ while read dev mpt fs opt dummy ; do
|
||||
+ case "$opt" in
|
||||
+ *bind*)
|
||||
+ if [ "$fs" = "none" ] && ! [ -w "$mpt" ]; then
|
||||
+ mount none "$mpt" -o remount,rw
|
||||
+ fi
|
||||
+ ;;
|
||||
+ ro,* | *,ro,* | *,ro) ;;
|
||||
+ *)
|
||||
+ if ! [ -w "$mpt" ]; then
|
||||
+ mount "$mpt" -o remount,rw
|
||||
+ fi
|
||||
+ ;;
|
||||
+ esac
|
||||
+ done < /etc/fstab
|
||||
+}
|
||||
+
|
||||
#
|
||||
# Mounts all partitions listed in /etc/fstab.kdump
|
||||
function mount_all()
|
||||
{
|
||||
local ret=0
|
||||
|
||||
- test -f /etc/fstab.kdump || return 0
|
||||
+ if ! [ -f /etc/fstab.kdump ] ; then
|
||||
+ rw_fixup
|
||||
+ return 0
|
||||
+ fi
|
||||
|
||||
if [ -f /etc/fstab ] ; then
|
||||
mv /etc/fstab /etc/fstab.orig
|
||||
@@ -143,6 +167,8 @@
|
||||
mount -a
|
||||
ret=$?
|
||||
|
||||
+ rw_fixup
|
||||
+
|
||||
if [ -f /etc/fstab.orig ] ; then
|
||||
mv /etc/fstab.orig /etc/fstab
|
||||
else
|
25
kdump-source-save_dump.patch
Normal file
25
kdump-source-save_dump.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From: Michal Suchanek <msuchanek@suse.de>
|
||||
Date: Wed Jun 21 15:33:01 2017 +0200
|
||||
Subject: Source save_dump.sh in systemd service.
|
||||
References: bcs#1034169
|
||||
Upstream: v0.8.17
|
||||
Git-commit: b053165dd633978b1a78f6f7f993d34a62ee97c3
|
||||
|
||||
save_dump.sh is designed to be sourced and contains a number of toplevel return
|
||||
statements. Bash will complain when these are executed unless the script is
|
||||
sourced so source it to prevent useless noise.
|
||||
|
||||
Reported-by: Neil Brown <nfbrown@suse.com>
|
||||
Signed-off-by: Michal Suchanek <msuchanek@suse.de>
|
||||
|
||||
--- kdump-0.8.16/init/kdump-save.service.in~ 2016-10-05 09:37:12.000000000 +0200
|
||||
+++ kdump-0.8.16/init/kdump-save.service.in 2017-06-01 17:04:00.428710624 +0200
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
-ExecStart=/lib/kdump/save_dump.sh
|
||||
+ExecStart=/bin/bash -c "source /lib/kdump/save_dump.sh"
|
||||
StandardInput=tty
|
||||
StandardOutput=tty
|
||||
StandardError=tty
|
176
kdump-treat-KDUMP_CPUS-0-as-all-available-CPUs.patch
Normal file
176
kdump-treat-KDUMP_CPUS-0-as-all-available-CPUs.patch
Normal file
@ -0,0 +1,176 @@
|
||||
From: Petr Tesarik <ptesarik@suse.com>
|
||||
Date: Fri Jun 23 13:43:15 2017 +0200
|
||||
Subject: Treat KDUMP_CPUS=0 as "all available CPUs"
|
||||
References: bsc#1036223
|
||||
Upstream: v0.8.17
|
||||
Git-commit: 34192abe9a0f5ddbcd580fa52b7fa4400533b9a4
|
||||
|
||||
Since SMP after crash is now considered stable, remove the warnings and
|
||||
make the feature more useful by not requiring a fixed number of CPUs.
|
||||
|
||||
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
|
||||
|
||||
---
|
||||
doc/man/kdump.5.txt.in | 7 +++----
|
||||
init/load.sh | 7 +++++--
|
||||
kdumptool/calibrate.cc | 6 +++---
|
||||
kdumptool/savedump.cc | 23 ++++++++++++++---------
|
||||
kdumptool/savedump.h | 2 +-
|
||||
sysconfig.kdump.in | 7 +------
|
||||
6 files changed, 27 insertions(+), 25 deletions(-)
|
||||
|
||||
--- a/doc/man/kdump.5.txt.in
|
||||
+++ b/doc/man/kdump.5.txt.in
|
||||
@@ -136,13 +136,12 @@ the number of CPUs in your system.
|
||||
This parameter modifies the _maxcpus_ parameter of the kdump kernel and
|
||||
the number of *makedumpfile*(8) processes created.
|
||||
|
||||
+If the value is zero, all available CPUs are used, i.e. the _maxcpus_
|
||||
+parameter is not added to the kdump kernel command line.
|
||||
+
|
||||
*Note:* This parameter does not work properly for the _ELF_ format,
|
||||
because *makedumpfile*(8) does not support split _ELF_ dump files.
|
||||
|
||||
-*WARNING:* SETTING THIS NUMBER TO A NUMBER HIGHER THAN 1 IS EXPERIMENTAL!
|
||||
-SOME MACHINES ARE KNOWN TO HANG OR REBOOT RANDOMLY DURING INITIALISATION
|
||||
-OF THE DUMP KERNEL IF KDUMP_CPUS > 1.
|
||||
-
|
||||
Default is 1.
|
||||
|
||||
|
||||
--- a/init/load.sh
|
||||
+++ b/init/load.sh
|
||||
@@ -63,14 +63,17 @@ function build_kdump_commandline()
|
||||
local commandline="$KDUMP_COMMANDLINE"
|
||||
|
||||
if [ -z "$commandline" ] ; then
|
||||
- local nr_cpus=$(cpus_param "$kdump_kernel")
|
||||
+ local nr_cpus
|
||||
commandline=$(
|
||||
remove_from_commandline \
|
||||
'root|resume|crashkernel|splash|mem|BOOT_IMAGE|showopts|zfcp\.allow_lun_scan|hugepages|acpi_no_memhotplug|cgroup_disable|unknown_nmi_panic|rd\.udev\.children-max' \
|
||||
< /proc/cmdline)
|
||||
+ if [ ${KDUMP_CPUS:-1} -ne 0 ] ; then
|
||||
+ nr_cpus=$(cpus_param "$kdump_kernel")=${KDUMP_CPUS:-1}
|
||||
+ fi
|
||||
# Use deadline for saving the memory footprint
|
||||
commandline="$commandline elevator=deadline sysrq=yes reset_devices acpi_no_memhotplug cgroup_disable=memory"
|
||||
- commandline="$commandline irqpoll ${nr_cpus}=${KDUMP_CPUS:-1}"
|
||||
+ commandline="$commandline irqpoll ${nr_cpus}"
|
||||
commandline="$commandline root=kdump rootflags=bind rd.udev.children-max=8"
|
||||
case $(uname -i) in
|
||||
i?86|x86_64)
|
||||
--- a/kdumptool/calibrate.cc
|
||||
+++ b/kdumptool/calibrate.cc
|
||||
@@ -905,10 +905,10 @@ void Calibrate::execute()
|
||||
}
|
||||
|
||||
// Add memory based on CPU count
|
||||
- unsigned long cpus;
|
||||
- if (CAN_REDUCE_CPUS) {
|
||||
+ unsigned long cpus = 0;
|
||||
+ if (CAN_REDUCE_CPUS)
|
||||
cpus = config->KDUMP_CPUS.value();
|
||||
- } else {
|
||||
+ if (!cpus) {
|
||||
SystemCPU syscpu;
|
||||
unsigned long online = syscpu.numOnline();
|
||||
unsigned long offline = syscpu.numOffline();
|
||||
--- a/kdumptool/savedump.cc
|
||||
+++ b/kdumptool/savedump.cc
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "identifykernel.h"
|
||||
#include "email.h"
|
||||
#include "routable.h"
|
||||
+#include "calibrate.h"
|
||||
|
||||
using std::string;
|
||||
using std::list;
|
||||
@@ -60,7 +61,7 @@ using std::ifstream;
|
||||
SaveDump::SaveDump()
|
||||
throw ()
|
||||
: m_dump(DEFAULT_DUMP), m_transfer(NULL), m_usedDirectSave(false),
|
||||
- m_useMakedumpfile(false), m_useSplit(false), m_nomail(false)
|
||||
+ m_useMakedumpfile(false), m_split(0), m_nomail(false)
|
||||
{
|
||||
Debug::debug()->trace("SaveDump::SaveDump()");
|
||||
|
||||
@@ -284,10 +285,15 @@ void SaveDump::saveDump(const RootDirURL
|
||||
if (noDump)
|
||||
return; // nothing to be done
|
||||
|
||||
+ unsigned long cpus = config->KDUMP_CPUS.value();
|
||||
+ if (cpus) {
|
||||
+ SystemCPU syscpu;
|
||||
+ cpus = syscpu.numOnline();
|
||||
+ }
|
||||
if (!config->kdumptoolContainsFlag("NOSPLIT") &&
|
||||
- config->KDUMP_CPUS.value() > 1) {
|
||||
+ cpus > 1) {
|
||||
if (!useElf)
|
||||
- m_useSplit = true;
|
||||
+ m_split = cpus;
|
||||
else
|
||||
cerr << "Splitting ELF dumps is not supported." << endl;
|
||||
}
|
||||
@@ -305,7 +311,7 @@ void SaveDump::saveDump(const RootDirURL
|
||||
// use makedumpfile
|
||||
ostringstream cmdline;
|
||||
cmdline << "makedumpfile ";
|
||||
- if (m_useSplit)
|
||||
+ if (m_split)
|
||||
cmdline << "--split ";
|
||||
cmdline << config->MAKEDUMPFILE_OPTIONS.value() << " ";
|
||||
cmdline << "-d " << config->KDUMP_DUMPLEVEL.value() << " ";
|
||||
@@ -340,10 +346,9 @@ void SaveDump::saveDump(const RootDirURL
|
||||
provider->setProgress(&progress);
|
||||
else
|
||||
cout << "Saving dump ..." << endl;
|
||||
- if (m_useSplit) {
|
||||
+ if (m_split) {
|
||||
StringVector targets;
|
||||
- const int cpus = config->KDUMP_CPUS.value();
|
||||
- for (int i = 1; i <= cpus; ++i) {
|
||||
+ for (unsigned long i = 1; i <= m_split; ++i) {
|
||||
ostringstream ss;
|
||||
ss << "vmcore" << i;
|
||||
targets.push_back(ss.str());
|
||||
@@ -482,8 +487,8 @@ void SaveDump::generateInfo()
|
||||
ss << "Dump level : "
|
||||
<< Stringutil::number2string(config->KDUMP_DUMPLEVEL.value()) << endl;
|
||||
ss << "Dump format : " << config->KDUMP_DUMPFORMAT.value() << endl;
|
||||
- if (m_useSplit && m_usedDirectSave)
|
||||
- ss << "Split parts : " << config->KDUMP_CPUS.value() << endl;
|
||||
+ if (m_split && m_usedDirectSave)
|
||||
+ ss << "Split parts : " << m_split << endl;
|
||||
ss << endl;
|
||||
|
||||
|
||||
--- a/kdumptool/savedump.h
|
||||
+++ b/kdumptool/savedump.h
|
||||
@@ -112,7 +112,7 @@ class SaveDump : public Subcommand {
|
||||
Transfer *m_transfer;
|
||||
bool m_usedDirectSave;
|
||||
bool m_useMakedumpfile;
|
||||
- bool m_useSplit;
|
||||
+ unsigned long m_split;
|
||||
std::string m_crashtime;
|
||||
std::string m_crashrelease;
|
||||
std::string m_rootdir;
|
||||
--- a/sysconfig.kdump.in
|
||||
+++ b/sysconfig.kdump.in
|
||||
@@ -18,13 +18,8 @@ KDUMP_KERNELVER=""
|
||||
#
|
||||
# Number of CPUs to be used in the kdump environment. You may want to
|
||||
# increase the number if computing power is the bottleneck in your setup.
|
||||
-# This value is used as the maxcpus parameter of the secondary kernel, so
|
||||
-# DON'T CHANGE IT unless your system can reliably re-initialize SMP after
|
||||
-# a kernel crash.
|
||||
#
|
||||
-# WARNING: SETTING THIS NUMBER TO A NUMBER HIGHER THAN 1 IS EXPERIMENTAL!
|
||||
-# SOME MACHINES ARE KNOWN TO HANG OR REBOOT RANDOMLY DURING INITIALISATION
|
||||
-# OF THE DUMP KERNEL IF KDUMP_CPUS > 1.
|
||||
+# If the value is zero, use all available CPUs.
|
||||
#
|
||||
# See also: kdump(5).
|
||||
#
|
@ -1,3 +1,63 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 29 16:31:26 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-activate-QETH-devices.patch: Activate QETH network devices
|
||||
(bsc#1038669).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 27 06:06:54 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- Drop kdump-do-not-reload-FADUMP-on-CPU-memory-hotplug.patch:
|
||||
Reload is needed even with fadmp (bsc#1040567).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jun 26 11:24:47 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-fail-if-fadump-cannot-be-registered.patch: Fail at startup
|
||||
if fadump cannot be registered (bsc#1040567).
|
||||
- kdump-do-not-reload-FADUMP-on-CPU-memory-hotplug.patch: Do not
|
||||
reload on CPU/memory hotplug when using FADUMP (bsc#1040567).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 23 12:56:45 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-explicitly-request-zFCP-devices.patch: Explicitly request
|
||||
zFCP devices in kdump initrd (bsc#1008352).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 23 11:51:11 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-move-class-SystemCPU-to-header-file.patch: Move class
|
||||
SystemCPU to a header file (bsc#1036223).
|
||||
- kdump-treat-KDUMP_CPUS-0-as-all-available-CPUs.patch: Treat
|
||||
KDUMP_CPUS=0 as "all available CPUs" (bsc#1036223).
|
||||
- kdump-multithreading-by-default.patch: Use multithreading by
|
||||
default (bsc#1036223).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 22 12:42:50 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-fix-save_dump-to-NFS.patch: Fix save_dump to NFS targets
|
||||
(bsc#1045541).
|
||||
- kdump-invoke-subcommand-destructors-on-exit.patch: Invoke
|
||||
subcommand destructors on exit (bsc#1045541).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 16 12:04:14 UTC 2017 - msuchanek@suse.com
|
||||
|
||||
- kdump-do-not-free-fadump-memory-when-immediate-reboot-is-requested.patch
|
||||
Releasing fadump memory can take a long time so skip it when
|
||||
rebooting anyway (bsc#1040610).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 15 12:55:34 UTC 2017 - msuchanek@suse.com
|
||||
|
||||
- kdump-do-not-check-bind-mount.patch: Do not request filesystem
|
||||
check on bind mounts (bsc#1034169).
|
||||
- kdump-remount-sysroot-readwrite.patch: Also remount writable
|
||||
any mounts that were already mounted readonly by systemd
|
||||
(bsc#1034169).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 14 12:48:34 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
@ -25,6 +85,14 @@ Wed Jun 7 11:43:46 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
- kdump-aarch64.patch: kdumptool: add aarch64 (bsc#1033464).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 1 14:50:25 UTC 2017 - msuchanek@suse.com
|
||||
|
||||
- kdump-source-save_dump.patch: save_dump.sh is designed to be
|
||||
sourced and has numerous toplevel return statements. Source it
|
||||
from the service definition as well to prevent bash complaints.
|
||||
(bcs#1034169).
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed May 17 13:31:11 UTC 2017 - ptesarik@suse.com
|
||||
|
||||
@ -154,7 +222,7 @@ Tue Sep 23 14:17:01 UTC 2014 - ptesarik@suse.cz
|
||||
- kdump-add-IPv6-KDUMP_NETCONFIG-modes.patch: Add KDUMP_NETCONFIG
|
||||
modes to support IPv6 (bnc#885897).
|
||||
|
||||
------------------------------------------------------------------
|
||||
-------------------------------------------------------------------
|
||||
Mon Sep 22 15:32:22 UTC 2014 - ptesarik@suse.cz
|
||||
|
||||
- kdump-get-multipath-wwid-from-sysfs.patch: Get required multipath
|
||||
|
24
kdump.spec
24
kdump.spec
@ -55,6 +55,18 @@ Patch10: %{name}-fix-service-files.patch
|
||||
Patch11: %{name}-Routable-preferred-source-address.patch
|
||||
Patch12: %{name}-URLTransfer-complete-target.patch
|
||||
Patch13: %{name}-prepend-IP-address.patch
|
||||
Patch14: %{name}-do-not-free-fadump-memory-when-immediate-reboot-is-requested.patch
|
||||
Patch15: %{name}-do-not-check-bind-mount.patch
|
||||
Patch16: %{name}-source-save_dump.patch
|
||||
Patch17: %{name}-remount-sysroot-readwrite.patch
|
||||
Patch18: %{name}-fix-save_dump-to-NFS.patch
|
||||
Patch19: %{name}-invoke-subcommand-destructors-on-exit.patch
|
||||
Patch20: %{name}-move-class-SystemCPU-to-header-file.patch
|
||||
Patch21: %{name}-treat-KDUMP_CPUS-0-as-all-available-CPUs.patch
|
||||
Patch22: %{name}-multithreading-by-default.patch
|
||||
Patch23: %{name}-explicitly-request-zFCP-devices.patch
|
||||
Patch24: %{name}-fail-if-fadump-cannot-be-registered.patch
|
||||
Patch25: %{name}-activate-QETH-devices.patch
|
||||
BuildRequires: asciidoc
|
||||
BuildRequires: cmake
|
||||
BuildRequires: gcc-c++
|
||||
@ -128,6 +140,18 @@ cp %{S:1} tests/data/
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
|
||||
%build
|
||||
export CFLAGS="%{optflags}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user