Remove kdump-utils and makedumpfile
Resolves: RHEL-49401 Signed-off-by: Lichen Liu <lichliu@redhat.com>
This commit is contained in:
parent
7419c13d17
commit
d5198e30fe
@ -1,69 +0,0 @@
|
|||||||
From 98087d78eda2ca58a3b55ee5dd9e0e7bad8467ef Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tao Liu <ltao@redhat.com>
|
|
||||||
Date: Tue, 25 Jun 2024 16:35:16 +1200
|
|
||||||
Subject: [PATCH] Use "grep -q <<< $(cmd)" instead of "cmd | grep -q"
|
|
||||||
|
|
||||||
The following line of code's exit value should be the exit value of
|
|
||||||
grep by default:
|
|
||||||
|
|
||||||
cmd | grep -q
|
|
||||||
|
|
||||||
However it will not always work as expected, a 141 exit code may be
|
|
||||||
returned, see the following debug info:
|
|
||||||
|
|
||||||
//--- a/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh
|
|
||||||
//+++ b/usr/lib/dracut/modules.d/99kdumpbase/module-setup.sh
|
|
||||||
//@@ -55,6 +55,11 @@ depends() {
|
|
||||||
// _dep="$_dep ssh-client"
|
|
||||||
// fi
|
|
||||||
//
|
|
||||||
//+ dracut --list-modules 1>&2
|
|
||||||
//+ echo $? 1>&2
|
|
||||||
//+ dracut --list-modules | grep -q lvmthinpool-monitor
|
|
||||||
//+ echo $? ${PIPESTATUS[0]} ${PIPESTATUS[1]} 1>&2
|
|
||||||
//+
|
|
||||||
// if is_lvm2_thinp_dump_target; then
|
|
||||||
// if dracut --list-modules | grep -q lvmthinpool-monitor; then
|
|
||||||
// add_opt_module lvmthinpool-monitor
|
|
||||||
|
|
||||||
$ kdumpctl rebuild
|
|
||||||
kdump: Rebuilding /boot/initramfs-6.10.0-0.rc4.11.el10.x86_64kdump.img
|
|
||||||
...snip...
|
|
||||||
lvmmerge
|
|
||||||
lvmthinpool-monitor
|
|
||||||
..snip...
|
|
||||||
uefi-lib
|
|
||||||
0
|
|
||||||
141 141 0
|
|
||||||
|
|
||||||
The reason is, grep exits immediately when there is a match but the
|
|
||||||
first cmd still keep writing to the pipe. Since there is no reader,
|
|
||||||
a SIGPIPE signal is generated. As a result, a 141 exit code will be
|
|
||||||
returned.
|
|
||||||
|
|
||||||
Let's use the following line of code instead, which have the same effect
|
|
||||||
but works as expected:
|
|
||||||
|
|
||||||
grep -q <<< $(cmd)
|
|
||||||
|
|
||||||
Signed-off-by: Tao Liu <ltao@redhat.com>
|
|
||||||
---
|
|
||||||
dracut-module-setup.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
|
|
||||||
index 89d9959..76fb5b2 100755
|
|
||||||
--- a/dracut-module-setup.sh
|
|
||||||
+++ b/dracut-module-setup.sh
|
|
||||||
@@ -56,7 +56,7 @@ depends() {
|
|
||||||
fi
|
|
||||||
|
|
||||||
if is_lvm2_thinp_dump_target; then
|
|
||||||
- if dracut --list-modules | grep -q lvmthinpool-monitor; then
|
|
||||||
+ if grep -q lvmthinpool-monitor <<< $(dracut --list-modules); then
|
|
||||||
add_opt_module lvmthinpool-monitor
|
|
||||||
else
|
|
||||||
dwarning "Required lvmthinpool-monitor modules is missing! Please upgrade dracut >= 057."
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
|||||||
From a078cd8dfe9fe7956ef04c04c97b7c7354808833 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Thu, 11 Apr 2024 16:58:34 +0200
|
|
||||||
Subject: [PATCH 1/7] dracut-module-setup: Fix missing systemd/system.conf
|
|
||||||
error
|
|
||||||
|
|
||||||
There is a bug report for RHEL10 about a grep error reading
|
|
||||||
|
|
||||||
grep: /var/tmp/dracut.DiZuKp/initramfs/etc/systemd/system.conf*: No such file or directory
|
|
||||||
|
|
||||||
that shows up when rebuilding the initrd. This is caused by systemd
|
|
||||||
v255 that allows installing the default systemd config files to
|
|
||||||
/usr/lib/systemd instead of /etc/systemd [1][2] which is done for RHEL.
|
|
||||||
So unless a user manually adds /etc/systemd/system.conf the file no
|
|
||||||
longer exists.
|
|
||||||
|
|
||||||
However the test that requires the call to grep is somewhat wonky. IIUC
|
|
||||||
the test is there so we don't overwrite a setting the user might have
|
|
||||||
made. In my opinion this only makes sense as long as the timeout set is
|
|
||||||
larger than what we would set. But this part of the logic is missing.
|
|
||||||
So fix the error message by removing the test and add our config
|
|
||||||
unconditionally.
|
|
||||||
|
|
||||||
While at it rename the created drop-ins to 99-kdump.conf to follow
|
|
||||||
the recommended naming convention and to make sure that our value takes
|
|
||||||
precedence.
|
|
||||||
|
|
||||||
Note: In case the test is still needed we can fall back to use
|
|
||||||
'systemd-analyse cat-config' that automatically considers all potential
|
|
||||||
locations for the config and its drop-ins.
|
|
||||||
|
|
||||||
[1] 6495361c7d ("meson: add build option for install path of main config files")
|
|
||||||
[2] 6378f257e7 ("various: use new config loader instead of config_parse_config_file()")
|
|
||||||
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
dracut-module-setup.sh | 23 +++++++++++++----------
|
|
||||||
1 file changed, 13 insertions(+), 10 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
|
|
||||||
index 7e1cb9f..acc0b28 100755
|
|
||||||
--- a/dracut-module-setup.sh
|
|
||||||
+++ b/dracut-module-setup.sh
|
|
||||||
@@ -973,21 +973,24 @@ kdump_install_random_seed() {
|
|
||||||
|
|
||||||
kdump_install_systemd_conf() {
|
|
||||||
# Kdump turns out to require longer default systemd mount timeout
|
|
||||||
- # than 1st kernel(90s by default), we use default 300s for kdump.
|
|
||||||
- if ! grep -q -r "^[[:space:]]*DefaultTimeoutStartSec=" "${initdir}/etc/systemd/system.conf"*; then
|
|
||||||
- mkdir -p "${initdir}/etc/systemd/system.conf.d"
|
|
||||||
- echo "[Manager]" > "${initdir}/etc/systemd/system.conf.d/kdump.conf"
|
|
||||||
- echo "DefaultTimeoutStartSec=300s" >> "${initdir}/etc/systemd/system.conf.d/kdump.conf"
|
|
||||||
- fi
|
|
||||||
+ # than 1st kernel(45s by default), we use default 300s for kdump.
|
|
||||||
+ mkdir -p "${initdir}/etc/systemd/system.conf.d"
|
|
||||||
+ cat > "${initdir}/etc/systemd/system.conf.d/99-kdump.conf" << EOF
|
|
||||||
+[Manager]
|
|
||||||
+DefaultTimeoutStartSec=300s
|
|
||||||
+EOF
|
|
||||||
+
|
|
||||||
|
|
||||||
# Forward logs to console directly, and don't read Kmsg, this avoids
|
|
||||||
# unneccessary memory consumption and make console output more useful.
|
|
||||||
# Only do so for non fadump image.
|
|
||||||
mkdir -p "${initdir}/etc/systemd/journald.conf.d"
|
|
||||||
- echo "[Journal]" > "${initdir}/etc/systemd/journald.conf.d/kdump.conf"
|
|
||||||
- echo "Storage=volatile" >> "${initdir}/etc/systemd/journald.conf.d/kdump.conf"
|
|
||||||
- echo "ReadKMsg=no" >> "${initdir}/etc/systemd/journald.conf.d/kdump.conf"
|
|
||||||
- echo "ForwardToConsole=yes" >> "${initdir}/etc/systemd/journald.conf.d/kdump.conf"
|
|
||||||
+ cat > "${initdir}/etc/systemd/journald.conf.d/99-kdump.conf" << EOF
|
|
||||||
+[Journal]
|
|
||||||
+Storage=volatile
|
|
||||||
+ReadKMsg=no
|
|
||||||
+ForwardToConsole=yes
|
|
||||||
+EOF
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_cpu_online_rule() {
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,120 +0,0 @@
|
|||||||
From 32f9ada4bfa9f9690bdcdb21de40568c81a5ea80 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Fri, 14 Jun 2024 11:48:24 +0200
|
|
||||||
Subject: [PATCH 1/7] kdumpctl: Drop default kexec '-d' option
|
|
||||||
|
|
||||||
Kernel commits cbc2fe9d9cb2 ("kexec_file: add kexec_file flag to control
|
|
||||||
debug printing") and a85ee18c7900 ("kexec_file: print out debugging
|
|
||||||
message if required") added debug messages to the kexec_file_load system
|
|
||||||
call when option -d is provided to the kexec user space tool. As
|
|
||||||
kexec_file_load is the default and option -d is set by default these
|
|
||||||
messages are always printed when a crash kernel is loaded. This not only
|
|
||||||
clutters the kernel log but also potentially leaks confidential kernel
|
|
||||||
information to users. As the messages are printed to the kernel log, not
|
|
||||||
stderr, the redirection to /var/log/kdump.log won't catch them. This
|
|
||||||
will become even more problematic as for RHEL10 the kernel will be built
|
|
||||||
without support for the kexec_load system call. So kexec_file_load will
|
|
||||||
be the only choice in the future.
|
|
||||||
|
|
||||||
The redirection also caused confusion in a recent bug report. There a
|
|
||||||
user moved a working /etc/sysconfig/kdump from ppc to s390 with
|
|
||||||
KEXEC_ARGS containing the --dt-no-old-root option. This option is arch
|
|
||||||
specific and does not exist on s390. Thus the kexec-tools failed with an
|
|
||||||
'unrecognized option' error followed by the usage(). The problem was
|
|
||||||
that the 'unrecognized option' error is printed to stderr, which got
|
|
||||||
redirected to /var/log/kdump.log, while the usage() is printed to
|
|
||||||
stdout, which ended up in the systemd journal. This caused confusion as
|
|
||||||
the user only checked the journal and found the usage() without any
|
|
||||||
error message.
|
|
||||||
|
|
||||||
Thus remove the default -d option and the redirection of stderr to
|
|
||||||
/var/log/kdump.log for the kexec-tools user space tool.
|
|
||||||
|
|
||||||
This commit ultimately reverts 88a8b94 ("kdumpctl: add the '-d' option to
|
|
||||||
enable the kexec loading debugging messages").
|
|
||||||
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
kdumpctl | 21 +++------------------
|
|
||||||
kexec-kdump-howto.txt | 7 +------
|
|
||||||
2 files changed, 4 insertions(+), 24 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kdumpctl b/kdumpctl
|
|
||||||
index 30eb27d..8dc56e5 100755
|
|
||||||
--- a/kdumpctl
|
|
||||||
+++ b/kdumpctl
|
|
||||||
@@ -5,7 +5,6 @@ KDUMP_KERNELVER=""
|
|
||||||
KDUMP_KERNEL=""
|
|
||||||
KDUMP_COMMANDLINE=""
|
|
||||||
KEXEC_ARGS=""
|
|
||||||
-KDUMP_LOG_PATH="/var/log"
|
|
||||||
MKDUMPRD="/sbin/mkdumprd -f"
|
|
||||||
MKFADUMPRD="/sbin/mkfadumprd"
|
|
||||||
DRACUT_MODULES_FILE="/usr/lib/dracut/modules.txt"
|
|
||||||
@@ -17,7 +16,7 @@ TARGET_INITRD=""
|
|
||||||
#kdump shall be the default dump mode
|
|
||||||
DEFAULT_DUMP_MODE="kdump"
|
|
||||||
|
|
||||||
-standard_kexec_args="-d -p"
|
|
||||||
+standard_kexec_args="-p"
|
|
||||||
|
|
||||||
# Some default values in case /etc/sysconfig/kdump doesn't include
|
|
||||||
KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug"
|
|
||||||
@@ -696,7 +695,7 @@ function load_kdump_kernel_key()
|
|
||||||
# as the currently running kernel.
|
|
||||||
load_kdump()
|
|
||||||
{
|
|
||||||
- local ret uki
|
|
||||||
+ local uki
|
|
||||||
|
|
||||||
KEXEC_ARGS=$(prepare_kexec_args "${KEXEC_ARGS}")
|
|
||||||
KDUMP_COMMANDLINE=$(prepare_cmdline "${KDUMP_COMMANDLINE}" "${KDUMP_COMMANDLINE_REMOVE}" "${KDUMP_COMMANDLINE_APPEND}")
|
|
||||||
@@ -713,26 +712,12 @@ load_kdump()
|
|
||||||
|
|
||||||
ddebug "$KEXEC $KEXEC_ARGS $standard_kexec_args --command-line=$KDUMP_COMMANDLINE --initrd=$TARGET_INITRD $KDUMP_KERNEL"
|
|
||||||
|
|
||||||
- # The '12' represents an intermediate temporary file descriptor
|
|
||||||
- # to store the standard error file descriptor '2', and later
|
|
||||||
- # restore the error file descriptor with the file descriptor '12'
|
|
||||||
- # and release it.
|
|
||||||
- exec 12>&2
|
|
||||||
- exec 2>> $KDUMP_LOG_PATH/kdump.log
|
|
||||||
- chmod 600 $KDUMP_LOG_PATH/kdump.log
|
|
||||||
- PS4='+ $(date "+%Y-%m-%d %H:%M:%S") ${BASH_SOURCE}@${LINENO}: '
|
|
||||||
- set -x
|
|
||||||
-
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
$KEXEC $KEXEC_ARGS $standard_kexec_args \
|
|
||||||
--command-line="$KDUMP_COMMANDLINE" \
|
|
||||||
--initrd="$TARGET_INITRD" "$KDUMP_KERNEL"
|
|
||||||
|
|
||||||
- ret=$?
|
|
||||||
- set +x
|
|
||||||
- exec 2>&12 12>&-
|
|
||||||
-
|
|
||||||
- if [[ $ret == 0 ]]; then
|
|
||||||
+ if [[ $? == 0 ]]; then
|
|
||||||
dinfo "kexec: loaded kdump kernel"
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
diff --git a/kexec-kdump-howto.txt b/kexec-kdump-howto.txt
|
|
||||||
index 6741faf..c65d45a 100644
|
|
||||||
--- a/kexec-kdump-howto.txt
|
|
||||||
+++ b/kexec-kdump-howto.txt
|
|
||||||
@@ -1016,12 +1016,7 @@ Debugging Tips
|
|
||||||
and the second kernel.
|
|
||||||
|
|
||||||
In the first kernel, you can find the historical logs with the journalctl
|
|
||||||
- command and check kdump service debugging information. In addition, the
|
|
||||||
- 'kexec -d' debugging messages are also saved to /var/log/kdump.log in the
|
|
||||||
- first kernel. For example:
|
|
||||||
-
|
|
||||||
- [root@ibm-z-109 ~]# ls -al /var/log/kdump.log
|
|
||||||
- -rw-r--r--. 1 root root 63238 Oct 28 06:40 /var/log/kdump.log
|
|
||||||
+ command and check kdump service debugging information.
|
|
||||||
|
|
||||||
If you want to get the debugging information of building kdump initramfs, you
|
|
||||||
can enable the '--debug' option for the dracut_args in the /etc/kdump.conf, and
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
From d25d3d4500d1ca1357350fa4a28ac89a33f250e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Tue, 18 Jun 2024 14:57:16 +0200
|
|
||||||
Subject: [PATCH 2/7] kdump-lib: fix sed expression in prepare_cmdline on
|
|
||||||
aarch64
|
|
||||||
|
|
||||||
The sed expression misses a 's' for search and replace...
|
|
||||||
|
|
||||||
Fixes: 0f6ad91 ("kdump-lib: fix prepare_cmdline")
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
kdump-lib.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/kdump-lib.sh b/kdump-lib.sh
|
|
||||||
index 79714f9..35f0ac9 100755
|
|
||||||
--- a/kdump-lib.sh
|
|
||||||
+++ b/kdump-lib.sh
|
|
||||||
@@ -802,7 +802,7 @@ prepare_cmdline()
|
|
||||||
|
|
||||||
# This is a workaround on AWS platform. Always remove irqpoll since it
|
|
||||||
# may cause the hot-remove of some pci hotplug device.
|
|
||||||
- is_aws_aarch64 && out=$(echo "$out" | sed -e "/\<irqpoll\>//")
|
|
||||||
+ is_aws_aarch64 && out=$(echo "$out" | sed -e "s/\<irqpoll\>//")
|
|
||||||
|
|
||||||
# Always disable gpt-auto-generator as it hangs during boot of the
|
|
||||||
# crash kernel. Furthermore we know which disk will be used for dumping
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
|||||||
From 247c7a5f39b305f9a83bad2d936d00237165b7e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Mamoru Nishibe (Fujitsu)" <nishibe.mamoru@fujitsu.com>
|
|
||||||
Date: Wed, 24 Apr 2024 08:11:12 +0000
|
|
||||||
Subject: [PATCH 2/7] mkdumprd: Fix makedumpfile parameter check.
|
|
||||||
|
|
||||||
If only "makedumpfile" is written in "core_collector" of /etc/kdump.conf
|
|
||||||
and try to run makedumpfile without options,
|
|
||||||
"makedumpfile --check-params" fails and terminates abnormally.
|
|
||||||
|
|
||||||
# grep ^core_collector /etc/kdump.conf
|
|
||||||
core_collector makedumpfile
|
|
||||||
# /usr/bin/kdumpctl start
|
|
||||||
:
|
|
||||||
Commandline parameter is invalid.
|
|
||||||
Try `makedumpfile --help' for more information.
|
|
||||||
kdump: makedumpfile parameter check failed.
|
|
||||||
kdump: mkdumprd: failed to make kdump initrd
|
|
||||||
kdump: Starting kdump: [FAILED]
|
|
||||||
|
|
||||||
On the other hand, "makedumpfile --check-params" works fine without any options.
|
|
||||||
|
|
||||||
# makedumpfile --check-params vmcore dumpfile
|
|
||||||
# echo $?
|
|
||||||
0
|
|
||||||
|
|
||||||
In addition, before verify_core_collector() was implemented,
|
|
||||||
initial RAM for kdump was successfully created using only "core_collector makedumpfile".
|
|
||||||
I consider it a regression.
|
|
||||||
|
|
||||||
This is due to a parameter extraction error in verify_core_collector().
|
|
||||||
Fix it to correctly extract only the options as follows.
|
|
||||||
|
|
||||||
Fixes: a1c28126 ("mkdumprd: Use makedumpfile --check-params option")
|
|
||||||
Signed-off-by: Mamoru Nishibe <nishibe.mamoru@fujitsu.com>
|
|
||||||
Reviewed-by: Coiby Xu <coxu@redhat.com>
|
|
||||||
---
|
|
||||||
mkdumprd | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/mkdumprd b/mkdumprd
|
|
||||||
index 31c4b76..27eed5e 100644
|
|
||||||
--- a/mkdumprd
|
|
||||||
+++ b/mkdumprd
|
|
||||||
@@ -256,7 +256,7 @@ check_user_configured_target()
|
|
||||||
verify_core_collector()
|
|
||||||
{
|
|
||||||
local _cmd="${1%% *}"
|
|
||||||
- local _params="${1#* }"
|
|
||||||
+ local _params="${1#${_cmd}}"
|
|
||||||
|
|
||||||
if [[ $_cmd != "makedumpfile" ]]; then
|
|
||||||
if is_raw_dump_target; then
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,53 +0,0 @@
|
|||||||
From d057153a1c3c36612a14143b29c0ff0be34e4fc2 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Coiby Xu <coxu@redhat.com>
|
|
||||||
Date: Thu, 21 Sep 2023 11:50:14 +0800
|
|
||||||
Subject: [PATCH 3/7] Try to install PHY and MDIO bus drivers explicitly
|
|
||||||
|
|
||||||
Resolves: https://issues.redhat.com/browse/RHEL-7028
|
|
||||||
|
|
||||||
Currently, nfs dumping fails on some machines that has a dedicated PHY
|
|
||||||
driver (dealing with the physical layer) or MDIO bus (connecting the MAC
|
|
||||||
to PHY devices) driver. This is because kexec-tools doesn't install
|
|
||||||
dedicated PHY or MDIO driver explicitly. Usually a NIC driver shouldn't
|
|
||||||
specify the dependency on the needed PHY or MDIO driver because it
|
|
||||||
shouldn't a NIC (medium access control, MAC) driver is for dealing with
|
|
||||||
the Data link layer and a PHY driver is for physical layer. So as long
|
|
||||||
as a MAC driver can talk to the PHY layer via APIs, it shouldn't care
|
|
||||||
which PHY driver or device it's talking to. So when the
|
|
||||||
dependency on a PHY driver or MDIO driver is not found by dracut's
|
|
||||||
instmods, the PHY or MDIO driver won't be installed.
|
|
||||||
|
|
||||||
This patch passes =drivers/net/phy and =drivers/net/mdio to dracut's
|
|
||||||
instmods which will only install in-use PHY or MDIO driver(s).
|
|
||||||
|
|
||||||
Note ideally we should find out which PHY driver is used by a NIC but
|
|
||||||
unfortunately currently no universal way can be found
|
|
||||||
(/sys/class/net/NIC_NAME/phydev/driver/module can be used to find the
|
|
||||||
name of the PHY driver for some NICs but it doesn't exist for some NICs
|
|
||||||
like Qualcomm Atheros AR8031). So is it for a MDIO bus driver.
|
|
||||||
Fortunately currently no huge memory consumption is found for a PHY or
|
|
||||||
MDIO driver.
|
|
||||||
|
|
||||||
Fixes: a65dde2d ("Reduce kdump memory consumption by only installing needed NIC drivers")
|
|
||||||
Reported-by: Doreen Alongi <dalongi@redhat.com>
|
|
||||||
Signed-off-by: Coiby Xu <coxu@redhat.com>
|
|
||||||
---
|
|
||||||
dracut-module-setup.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
|
|
||||||
index acc0b28..3c9bdbe 100755
|
|
||||||
--- a/dracut-module-setup.sh
|
|
||||||
+++ b/dracut-module-setup.sh
|
|
||||||
@@ -384,7 +384,7 @@ _get_hpyerv_physical_driver() {
|
|
||||||
kdump_install_nic_driver() {
|
|
||||||
local _netif _driver _drivers
|
|
||||||
|
|
||||||
- _drivers=()
|
|
||||||
+ _drivers=('=drivers/net/phy' '=drivers/net/mdio')
|
|
||||||
|
|
||||||
for _netif in $1; do
|
|
||||||
[[ $_netif == lo ]] && continue
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
|||||||
From 8ebf2874a202a2d7116a27c69816b8621ace5224 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Thu, 1 Jun 2023 17:04:13 +0200
|
|
||||||
Subject: [PATCH 3/7] kdumpctl: Simplify fadump handling in reset_crashkernel
|
|
||||||
|
|
||||||
When handling fadump there are three cases we need to consider
|
|
||||||
|
|
||||||
1) When running on non-ppc64le systems
|
|
||||||
In this case _dump_mode=kdump and _new_fadump='' always. In other
|
|
||||||
words we don't need to care updating the fadump parameter on the
|
|
||||||
kernel command line. We could always remove it like the code did so
|
|
||||||
far. But should we remove it when we never set it? In particular as
|
|
||||||
that might overwrite a change explicitly made by the user (for
|
|
||||||
whatever reason)
|
|
||||||
|
|
||||||
2) When running on ppc64le and the user provided --fadump option
|
|
||||||
In this case _new_fadump and _dump_mode are set accordingly to what
|
|
||||||
the user provided. Thus we need to update both the crashkernel (in
|
|
||||||
case fadump was turned on/off) and the fadump (in case the fadump
|
|
||||||
mode changed) parameters.
|
|
||||||
|
|
||||||
3) When running on ppc64le but the user did not provide --fadump option
|
|
||||||
In this case both _new_fadump='' and _dump_mode=''. In this case we
|
|
||||||
take over the previously set fadump parameter. Which means that we
|
|
||||||
don't need to update the fadump parameter at all. We do need to check
|
|
||||||
whether the _new_dump_mode is fadump or kdump though so we use the
|
|
||||||
correct (new) default crashkernel value.
|
|
||||||
|
|
||||||
In the three cases only the second one needs to update the fadump
|
|
||||||
parameter. Reflect this discussion in code.
|
|
||||||
|
|
||||||
This also fixes a bug that always prints
|
|
||||||
|
|
||||||
kdump: Updated fadump= for kernel=$kernel. Please reboot the
|
|
||||||
system for the change to take effect.
|
|
||||||
|
|
||||||
when the crashkernel= parameter is unchanged as well as reboots the
|
|
||||||
system, if --reboot is provided. Even for non-ppc architectures.
|
|
||||||
|
|
||||||
Fixes: 140da74 ("rewrite reset_crashkernel to support fadump and to used by RPM scriptlet")
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
kdumpctl | 38 ++++++++++++++++++++++----------------
|
|
||||||
1 file changed, 22 insertions(+), 16 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/kdumpctl b/kdumpctl
|
|
||||||
index 8dc56e5..8ec638b 100755
|
|
||||||
--- a/kdumpctl
|
|
||||||
+++ b/kdumpctl
|
|
||||||
@@ -1467,10 +1467,10 @@ _get_all_kernels_from_grubby()
|
|
||||||
reset_crashkernel()
|
|
||||||
{
|
|
||||||
local _opt _val _reboot _grubby_kernel_path _kernel _kernels
|
|
||||||
- local _dump_mode _new_dump_mode
|
|
||||||
+ local _dump_mode
|
|
||||||
local _has_changed _needs_reboot
|
|
||||||
local _old_ck _new_ck
|
|
||||||
- local _old_fadump _new_fadump
|
|
||||||
+ local _old_fadump _new_fadump _opt_fadump
|
|
||||||
|
|
||||||
for _opt in "$@"; do
|
|
||||||
case "$_opt" in
|
|
||||||
@@ -1479,12 +1479,11 @@ reset_crashkernel()
|
|
||||||
derror "Option --fadump only valid on PPC"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
- _new_fadump=${_opt#*=}
|
|
||||||
- if ! _dump_mode=$(get_dump_mode_by_fadump_val $_new_fadump); then
|
|
||||||
+ _opt_fadump=${_opt#*=}
|
|
||||||
+ if ! _dump_mode=$(get_dump_mode_by_fadump_val $_opt_fadump); then
|
|
||||||
derror "failed to determine dump mode"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
- [[ "$_new_fadump" == off ]] && _new_fadump=""
|
|
||||||
;;
|
|
||||||
--kernel=*)
|
|
||||||
_val=${_opt#*=}
|
|
||||||
@@ -1519,8 +1518,6 @@ reset_crashkernel()
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
- [[ $(uname -m) != ppc64le ]] && _dump_mode=kdump
|
|
||||||
-
|
|
||||||
# If kernel-path not specified, either
|
|
||||||
# - use KDUMP_KERNELVER if it's defined
|
|
||||||
# - use current running kernel
|
|
||||||
@@ -1536,19 +1533,28 @@ reset_crashkernel()
|
|
||||||
|
|
||||||
for _kernel in $_kernels; do
|
|
||||||
_has_changed=""
|
|
||||||
- if [[ -z $_dump_mode ]]; then
|
|
||||||
- _new_dump_mode=$(get_dump_mode_by_kernel "$_kernel")
|
|
||||||
- _new_fadump=$(get_grub_kernel_boot_parameter "$_kernel" fadump)
|
|
||||||
+ if [[ $(uname -m) == ppc64le ]]; then
|
|
||||||
+ if [[ -n "$_opt_fadump" ]]; then
|
|
||||||
+ _new_ck=$(kdump_get_arch_recommend_crashkernel "$_dump_mode")
|
|
||||||
+ _old_fadump=$(get_grub_kernel_boot_parameter "$_kernel" fadump)
|
|
||||||
+ _new_fadump="$_opt_fadump"
|
|
||||||
+ [[ "$_new_fadump" == off ]] && _new_fadump=""
|
|
||||||
+ if _update_kernel_cmdline "$_kernel" fadump "$_old_fadump" "$_new_fadump"; then
|
|
||||||
+ if [[ -n "$_new_fadump" ]]; then
|
|
||||||
+ _has_changed="Updated fadump=$_new_fadump"
|
|
||||||
+ else
|
|
||||||
+ _has_changed="Removed fadump"
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+ else
|
|
||||||
+ _dump_mode="$(get_dump_mode_by_kernel "$_kernel")"
|
|
||||||
+ _new_ck=$(kdump_get_arch_recommend_crashkernel "$_dump_mode")
|
|
||||||
+ fi
|
|
||||||
else
|
|
||||||
- _new_dump_mode=$_dump_mode
|
|
||||||
+ _new_ck=$(kdump_get_arch_recommend_crashkernel kdump)
|
|
||||||
fi
|
|
||||||
|
|
||||||
_old_ck=$(get_grub_kernel_boot_parameter "$_kernel" crashkernel)
|
|
||||||
- _new_ck=$(kdump_get_arch_recommend_crashkernel "$_new_dump_mode")
|
|
||||||
- _old_fadump=$(get_grub_kernel_boot_parameter "$_kernel" fadump)
|
|
||||||
- if _update_kernel_cmdline "$_kernel" fadump "$_old_fadump" "$_new_fadump"; then
|
|
||||||
- _has_changed="Updated fadump=$_new_fadump"
|
|
||||||
- fi
|
|
||||||
if _update_kernel_cmdline "$_kernel" crashkernel "$_old_ck" "$_new_ck"; then
|
|
||||||
_has_changed="Updated crashkernel=$_new_ck"
|
|
||||||
fi
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
From 7a8edc8de67dccae23b01461bc3b17c0ad42aa5f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Coiby Xu <coxu@redhat.com>
|
|
||||||
Date: Wed, 27 Sep 2023 09:31:39 +0800
|
|
||||||
Subject: [PATCH 4/7] Install the driver of physical device for a SR-IOV
|
|
||||||
virtual device
|
|
||||||
|
|
||||||
Currently, network dumping failed over a NIC that is a Single Root I/O
|
|
||||||
Virtualization (SR-IOV) virtual device. Usually the driver of the
|
|
||||||
virtual device won't specify the dependency on the driver of the
|
|
||||||
physical device. So to fix this issue, the driver of the physical device
|
|
||||||
needs to be found and installed as well.
|
|
||||||
|
|
||||||
Fixes: a65dde2d ("Reduce kdump memory consumption by only installing needed NIC drivers")
|
|
||||||
Signed-off-by: Coiby Xu <coxu@redhat.com>
|
|
||||||
---
|
|
||||||
dracut-module-setup.sh | 11 +++++++++++
|
|
||||||
1 file changed, 11 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
|
|
||||||
index 3c9bdbe..89d9959 100755
|
|
||||||
--- a/dracut-module-setup.sh
|
|
||||||
+++ b/dracut-module-setup.sh
|
|
||||||
@@ -381,6 +381,14 @@ _get_hpyerv_physical_driver() {
|
|
||||||
_get_nic_driver "$_physical_nic"
|
|
||||||
}
|
|
||||||
|
|
||||||
+_get_physical_function_driver() {
|
|
||||||
+ local _physfn_dir=/sys/class/net/"$1"/device/physfn
|
|
||||||
+
|
|
||||||
+ if [[ -e "$_physfn_dir" ]]; then
|
|
||||||
+ basename "$(readlink -f "$_physfn_dir"/driver)"
|
|
||||||
+ fi
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
kdump_install_nic_driver() {
|
|
||||||
local _netif _driver _drivers
|
|
||||||
|
|
||||||
@@ -408,6 +416,9 @@ kdump_install_nic_driver() {
|
|
||||||
fi
|
|
||||||
|
|
||||||
_drivers+=("$_driver")
|
|
||||||
+ # For a Single Root I/O Virtualization (SR-IOV) virtual device,
|
|
||||||
+ # the driver of physical device needs to be installed as well
|
|
||||||
+ _drivers+=("$(_get_physical_function_driver "$_netif")")
|
|
||||||
done
|
|
||||||
|
|
||||||
[[ -n ${_drivers[*]} ]] || return
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From de393c1bcb7d32e97d9b46bb6a73180072f03aa3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Mon, 1 Jul 2024 12:52:39 +0200
|
|
||||||
Subject: [PATCH 4/7] kdumpctl.8: Add description to reset-crashkernel --reboot
|
|
||||||
|
|
||||||
There is no description for parameter --reboot for reset-crashkernel.
|
|
||||||
Thus add one.
|
|
||||||
|
|
||||||
Suggested-by: Lichen Liu <lichliu@redhat.com>
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
kdumpctl.8 | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/kdumpctl.8 b/kdumpctl.8
|
|
||||||
index 33c1115..29a6119 100644
|
|
||||||
--- a/kdumpctl.8
|
|
||||||
+++ b/kdumpctl.8
|
|
||||||
@@ -62,6 +62,10 @@ grubby's kernel-path=ALL and kernel-path=DEFAULT. ppc64le supports FADump and
|
|
||||||
supports an additional [--fadump=[on|off|nocma]] parameter to toggle FADump
|
|
||||||
on/off.
|
|
||||||
|
|
||||||
+If the optional parameter [--reboot] is provided the system will automatically
|
|
||||||
+reboot for changes to take effect. If no changes were made to the kernel
|
|
||||||
+command line the reboot is omitted.
|
|
||||||
+
|
|
||||||
Note: The memory requirements for kdump varies heavily depending on the
|
|
||||||
used hardware and system configuration. Thus the recommended
|
|
||||||
crashkernel might not work for your specific setup. Please test if
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,32 +0,0 @@
|
|||||||
From afc6ddb781079dfbdf7919803114458907fc4e6a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Thu, 20 Jun 2024 13:19:30 +0200
|
|
||||||
Subject: [PATCH 5/7] dracut-kdump.sh: Save kexec-dmesg.log after
|
|
||||||
failure_action
|
|
||||||
|
|
||||||
The kexec-dmesg.log is only saved after the initial dump attempt but not
|
|
||||||
for the failure_action. So in case the initial dump attempt failed and
|
|
||||||
the failure_action is dump_to_rootfs the kexec-dmesg.log is missing. Fix
|
|
||||||
that by calling save_log also after executing the failure_action.
|
|
||||||
|
|
||||||
Fixes: 3d70f8b ("logger: save log after all kdump progress finished")
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
dracut-kdump.sh | 1 +
|
|
||||||
1 file changed, 1 insertion(+)
|
|
||||||
|
|
||||||
diff --git a/dracut-kdump.sh b/dracut-kdump.sh
|
|
||||||
index 7b3ad7a..2e078c7 100755
|
|
||||||
--- a/dracut-kdump.sh
|
|
||||||
+++ b/dracut-kdump.sh
|
|
||||||
@@ -579,6 +579,7 @@ fence_kdump_notify()
|
|
||||||
if [ "$1" = "--error-handler" ]; then
|
|
||||||
get_kdump_confs
|
|
||||||
do_failure_action
|
|
||||||
+ save_log
|
|
||||||
do_final_action
|
|
||||||
|
|
||||||
exit $?
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
From 659e0aae8f00570c85e82e1317153bf89e59929c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Baoquan He <bhe@redhat.com>
|
|
||||||
Date: Thu, 7 Sep 2023 10:37:20 -0500
|
|
||||||
Subject: [PATCH 5/7] update 98-kexec rules for crash hotplug
|
|
||||||
|
|
||||||
In kernel, with the support of cpu/memory hotplug on crash, kdump
|
|
||||||
reloading only needs to update the elfcorehdr.
|
|
||||||
|
|
||||||
To realize the benefits, we need prevent udev from updating kdump
|
|
||||||
kernel on hot un/plug changes when detecting that the crash_hotplug
|
|
||||||
sysfs nodes are present.
|
|
||||||
|
|
||||||
Link: https://lore.kernel.org/lkml/20230814214446.6659-1-eric.devolder@oracle.com/
|
|
||||||
Link: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d68b4b6f307d155475cce541f2aee938032ed22e
|
|
||||||
Signed-off-by: Baoquan He <bhe@redhat.com>
|
|
||||||
---
|
|
||||||
98-kexec.rules | 4 ++++
|
|
||||||
98-kexec.rules.ppc64 | 4 ++++
|
|
||||||
2 files changed, 8 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/98-kexec.rules b/98-kexec.rules
|
|
||||||
index b73b701..52b2ee8 100644
|
|
||||||
--- a/98-kexec.rules
|
|
||||||
+++ b/98-kexec.rules
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+# The kernel updates the crash elfcorehdr for CPU and memory changes
|
|
||||||
+SUBSYSTEM=="cpu", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
|
|
||||||
+SUBSYSTEM=="memory", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
|
|
||||||
+
|
|
||||||
SUBSYSTEM=="cpu", ACTION=="add", GOTO="kdump_reload"
|
|
||||||
SUBSYSTEM=="cpu", ACTION=="remove", GOTO="kdump_reload"
|
|
||||||
SUBSYSTEM=="memory", ACTION=="online", GOTO="kdump_reload"
|
|
||||||
diff --git a/98-kexec.rules.ppc64 b/98-kexec.rules.ppc64
|
|
||||||
index e9db276..e7735b3 100644
|
|
||||||
--- a/98-kexec.rules.ppc64
|
|
||||||
+++ b/98-kexec.rules.ppc64
|
|
||||||
@@ -1,3 +1,7 @@
|
|
||||||
+# The kernel updates the crash elfcorehdr for CPU and memory changes
|
|
||||||
+SUBSYSTEM=="cpu", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
|
|
||||||
+SUBSYSTEM=="memory", ATTRS{crash_hotplug}=="1", GOTO="kdump_reload_end"
|
|
||||||
+
|
|
||||||
SUBSYSTEM=="cpu", ACTION=="online", GOTO="kdump_reload_cpu"
|
|
||||||
SUBSYSTEM=="memory", ACTION=="online", GOTO="kdump_reload_mem"
|
|
||||||
SUBSYSTEM=="memory", ACTION=="offline", GOTO="kdump_reload_mem"
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
|||||||
From e6b134a1593036b47a2a35da3c695a0db90de73f Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Mon, 24 Jun 2024 13:44:22 +0200
|
|
||||||
Subject: [PATCH 6/7] Makefile: Fix early-kdump file names
|
|
||||||
|
|
||||||
When creating the kdump-utils subpackage the files for earlykdump were
|
|
||||||
incorrectly renamed to kdump.sh and kdump-module-setup.sh rather than
|
|
||||||
the expected early-kdump.sh and module-setup.sh. These incorrect file
|
|
||||||
names then got transferred to the newly created Makefile with fe372af
|
|
||||||
("Upstream kdump-utils").
|
|
||||||
|
|
||||||
With those incorrect file names dracut fails when trying to add the
|
|
||||||
earlykdump module with
|
|
||||||
|
|
||||||
# dracut --add earlykdump kdump.img
|
|
||||||
dracut[E]: Module 'earlykdump' cannot be installed.
|
|
||||||
|
|
||||||
Fix the file names to allow installing the earlykdump module.
|
|
||||||
|
|
||||||
Fixes: 372b4c6 ("Add kdump-utils subpackage")
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
Makefile | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/Makefile b/Makefile
|
|
||||||
index e1a511c..538e4f4 100644
|
|
||||||
--- a/Makefile
|
|
||||||
+++ b/Makefile
|
|
||||||
@@ -26,8 +26,8 @@ dracut-modules:
|
|
||||||
install -m 644 dracut-kdump-emergency.target $(kdumpbasemoddir)/kdump-emergency.target
|
|
||||||
|
|
||||||
mkdir -p -m755 $(dracutmoddir)/99earlykdump
|
|
||||||
- install -m 755 dracut-early-kdump.sh $(dracutmoddir)/99earlykdump/kdump.sh
|
|
||||||
- install -m 755 dracut-early-kdump-module-setup.sh $(dracutmoddir)/99earlykdump/kdump-module-setup.sh
|
|
||||||
+ install -m 755 dracut-early-kdump.sh $(dracutmoddir)/99earlykdump/early-kdump.sh
|
|
||||||
+ install -m 755 dracut-early-kdump-module-setup.sh $(dracutmoddir)/99earlykdump/module-setup.sh
|
|
||||||
|
|
||||||
ifeq ($(ARCH), $(filter ppc64le ppc64,$(ARCH)))
|
|
||||||
mkdir -p -m755 $(dracutmoddir)/99zz-fadumpinit
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,61 +0,0 @@
|
|||||||
From ada6f5edf1ae06fc88759aa2f94d09e2a98d21ef Mon Sep 17 00:00:00 2001
|
|
||||||
From: Tao Liu <ltao@redhat.com>
|
|
||||||
Date: Wed, 1 May 2024 16:53:19 +0800
|
|
||||||
Subject: [PATCH 6/7] sysconfig: add pcie_ports compat to
|
|
||||||
KDUMP_COMMANDLINE_APPEND on x86_64
|
|
||||||
|
|
||||||
There have been some of failing cases of kdump in 2nd kernel, where
|
|
||||||
ususally only one cpu is enabled by "nr_cpus=1", but with a large
|
|
||||||
number of devices, which may easily exceed the maximum IRQ resources of
|
|
||||||
one cpu can handle. As a result, the 2nd kernel will hang and kdump
|
|
||||||
fails. This issue is often observed on machines with many cpus and many
|
|
||||||
devices.
|
|
||||||
|
|
||||||
On those systems, pcieports consume quite proportion of IRQ resources,
|
|
||||||
many following message can be seen in dmesg log:
|
|
||||||
|
|
||||||
pcieport 0000:18:01.0: PME: Signaling with IRQ 109
|
|
||||||
|
|
||||||
According to kernel doc[1], when "pcie_ports=compat" applied, it will disable
|
|
||||||
native PCIe services (PME, AER, DPC, PCIe hotplug). Those functions are
|
|
||||||
power management events, error reporting, performance, hotplug related,
|
|
||||||
which are not the must-have functions for kdump. In addition, after
|
|
||||||
testing, no side effects such as cannot writing vmcore into sdx, nvme
|
|
||||||
etc been noticed.
|
|
||||||
|
|
||||||
This patch will disable native PCIe services for 2nd kernel, to saving the
|
|
||||||
scarce IRQ resources and increase the kdump success.
|
|
||||||
|
|
||||||
Attach Prarit's comments:
|
|
||||||
|
|
||||||
This makes sense to me. The only concern anyone should have is that a PCIE
|
|
||||||
error could have been responsible for taking down the kernel in the first
|
|
||||||
place, and booting into the second kernel could then also have a fatal
|
|
||||||
problem. I'm not sure we can ever fix that type of cascade of panics :)
|
|
||||||
so it makes sense to disable these features.
|
|
||||||
|
|
||||||
[1]: https://www.kernel.org/doc/html/v6.9-rc1/admin-guide/kernel-parameters.html
|
|
||||||
|
|
||||||
Signed-off-by: Tao Liu <ltao@redhat.com>
|
|
||||||
Acked-by: Prarit Bhargava <prarit@redhat.com>
|
|
||||||
Acked-by: Dave Young <dyoung@redhat.com>
|
|
||||||
---
|
|
||||||
gen-kdump-sysconfig.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gen-kdump-sysconfig.sh b/gen-kdump-sysconfig.sh
|
|
||||||
index 78b0bb7..1a2cd92 100755
|
|
||||||
--- a/gen-kdump-sysconfig.sh
|
|
||||||
+++ b/gen-kdump-sysconfig.sh
|
|
||||||
@@ -104,7 +104,7 @@ s390x)
|
|
||||||
x86_64)
|
|
||||||
update_param KEXEC_ARGS "-s"
|
|
||||||
update_param KDUMP_COMMANDLINE_APPEND \
|
|
||||||
- "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 acpi_no_memhotplug transparent_hugepage=never nokaslr hest_disable novmcoredd cma=0 hugetlb_cma=0"
|
|
||||||
+ "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 acpi_no_memhotplug transparent_hugepage=never nokaslr hest_disable novmcoredd cma=0 hugetlb_cma=0 pcie_ports=compat"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Warning: Unknown architecture '$1', using default sysconfig template." >&2
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
|||||||
From b4e3d3724cf372493b404586126067ff66e550d6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sourabh Jain <sourabhjain@linux.ibm.com>
|
|
||||||
Date: Fri, 26 Apr 2024 18:17:49 +0530
|
|
||||||
Subject: [PATCH 7/7] fadump/udev: do not re-register fadump if kernel hotplug
|
|
||||||
ready
|
|
||||||
|
|
||||||
With the introduction of kernel commit c6c5b14dac0d ("powerpc: make fadump
|
|
||||||
resilient with memory add/remove events") linux kernel now internally manages
|
|
||||||
the update of elfcorehdr during memory add/remove events. So no need to
|
|
||||||
re-register fadump if the /sys/kernel/fadump/hotplug_ready is set to 1.
|
|
||||||
|
|
||||||
No impact for kernels that do not have /sys/kernel/fadump/hotplug_ready
|
|
||||||
sysfs.
|
|
||||||
|
|
||||||
Relevant kernel commit links:
|
|
||||||
1. https://msgid.link/20240422195932.1583833-2-sourabhjain@linux.ibm.com
|
|
||||||
2. https://msgid.link/20240422195932.1583833-3-sourabhjain@linux.ibm.com
|
|
||||||
|
|
||||||
Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com>
|
|
||||||
---
|
|
||||||
98-kexec.rules.ppc64 | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/98-kexec.rules.ppc64 b/98-kexec.rules.ppc64
|
|
||||||
index e7735b3..85fe0b1 100644
|
|
||||||
--- a/98-kexec.rules.ppc64
|
|
||||||
+++ b/98-kexec.rules.ppc64
|
|
||||||
@@ -15,7 +15,9 @@ GOTO="kdump_reload_end"
|
|
||||||
|
|
||||||
LABEL="kdump_reload_mem"
|
|
||||||
|
|
||||||
-RUN+="/bin/sh -c '/usr/bin/systemctl is-active kdump.service || exit 0; /usr/bin/systemd-run --quiet --no-block /usr/lib/udev/kdump-udev-throttler'"
|
|
||||||
+# Don't re-register fadump if /sys/kernel/fadump/hotplug_ready sysfs is set to 1.
|
|
||||||
+
|
|
||||||
+RUN+="/bin/sh -c '/usr/bin/systemctl is-active kdump.service || exit 0; ! test -f /sys/kernel/fadump/hotplug_ready || cat /sys/kernel/fadump/hotplug_ready | grep 1 || exit 0; /usr/bin/systemd-run --quiet --no-block /usr/lib/udev/kdump-udev-throttler'"
|
|
||||||
|
|
||||||
GOTO="kdump_reload_end"
|
|
||||||
|
|
||||||
--
|
|
||||||
2.44.0
|
|
||||||
|
|
@ -1,36 +0,0 @@
|
|||||||
From efc06f21a5b1b3a30ce438c15ce4a07fdfdd2440 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Philipp Rudo <prudo@redhat.com>
|
|
||||||
Date: Mon, 24 Jun 2024 17:34:35 +0200
|
|
||||||
Subject: [PATCH 7/7] kdump-lib: Drop 'file' dependency in is_uki
|
|
||||||
|
|
||||||
The 'file' utility is no longer installed per default. In addition there
|
|
||||||
was an update to it so it now reports the file type as
|
|
||||||
application/vnd.microsoft.portable-executable. Thus fall back to use
|
|
||||||
objdump to avoid adding yet an other dependency for kdump-utils and deal
|
|
||||||
with different versions of 'file'.
|
|
||||||
|
|
||||||
Note: This has the small drawback that objdump is arch specific. I.e.
|
|
||||||
examining a aarch64 UKI on a x86_64 machine will return an 'file format
|
|
||||||
not recognized' error.
|
|
||||||
|
|
||||||
Signed-off-by: Philipp Rudo <prudo@redhat.com>
|
|
||||||
---
|
|
||||||
kdump-lib.sh | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/kdump-lib.sh b/kdump-lib.sh
|
|
||||||
index 35f0ac9..13e16e3 100755
|
|
||||||
--- a/kdump-lib.sh
|
|
||||||
+++ b/kdump-lib.sh
|
|
||||||
@@ -18,7 +18,7 @@ is_uki()
|
|
||||||
img="$1"
|
|
||||||
|
|
||||||
[[ -f "$img" ]] || return
|
|
||||||
- [[ "$(file -b --mime-type "$img")" == application/x-dosexec ]] || return
|
|
||||||
+ [[ "$(objdump -a "$img" 2> /dev/null)" =~ pei-(x86-64|aarch64-little) ]] || return
|
|
||||||
objdump -h -j .linux "$img" &> /dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.45.2
|
|
||||||
|
|
@ -1,132 +0,0 @@
|
|||||||
From: Coiby Xu <coxu@redhat.com>
|
|
||||||
|
|
||||||
Subject: [PATCH] ppc64: get vmalloc start address from vmcoreinfo
|
|
||||||
|
|
||||||
Bugzilla: https://bugzilla.redhat.com/2269991
|
|
||||||
|
|
||||||
commit 94241fd2feed059227a243618f2acc6aabf366e8
|
|
||||||
Author: Aditya Gupta <adityag@linux.ibm.com>
|
|
||||||
Date: Sat Feb 24 00:33:42 2024 +0530
|
|
||||||
|
|
||||||
[PATCH] ppc64: get vmalloc start address from vmcoreinfo
|
|
||||||
|
|
||||||
Below error was noticed when running makedumpfile on linux-next kernel
|
|
||||||
crash (linux-next tag next-20240121):
|
|
||||||
|
|
||||||
Checking for memory holes : [100.0 %] | readpage_elf: Attempt to read non-existent page at 0xc000000000000.
|
|
||||||
[ 17.551718] kdump.sh[404]: readmem: type_addr: 0, addr:c00c000000000000, size:16384
|
|
||||||
[ 17.551793] kdump.sh[404]: __exclude_unnecessary_pages: Can't read the buffer of struct page.
|
|
||||||
[ 17.551864] kdump.sh[404]: create_2nd_bitmap: Can't exclude unnecessary pages.
|
|
||||||
[ 17.562632] kdump.sh[404]: The kernel version is not supported.
|
|
||||||
[ 17.562708] kdump.sh[404]: The makedumpfile operation may be incomplete.
|
|
||||||
[ 17.562773] kdump.sh[404]: makedumpfile Failed.
|
|
||||||
[ 17.564335] kdump[406]: saving vmcore failed, _exitcode:1
|
|
||||||
|
|
||||||
Above error was due to 'vmap_area_list' and 'vmlist' symbols missing
|
|
||||||
from the vmcore. 'vmap_area_list' was removed in the linux kernel
|
|
||||||
6.9-rc1 by the commit below:
|
|
||||||
|
|
||||||
commit 55c49fee57af99f3c663e69dedc5b85e691bbe50
|
|
||||||
mm/vmalloc: remove vmap_area_list
|
|
||||||
|
|
||||||
Subsequently the commit also introduced 'VMALLOC_START' in vmcoreinfo to
|
|
||||||
get base address of vmalloc area, instead of depending on 'vmap_area_list'
|
|
||||||
|
|
||||||
Hence if 'VMALLOC_START' symbol is there in vmcoreinfo:
|
|
||||||
1. Set vmalloc_start based on 'VMALLOC_START'
|
|
||||||
2. Don't error if vmap_area_list/vmlist are not defined
|
|
||||||
|
|
||||||
Reported-by: Sachin Sant <sachinp@linux.ibm.com>
|
|
||||||
Signed-off-by: Aditya Gupta <adityag@linux.ibm.com>
|
|
||||||
|
|
||||||
Signed-off-by: Coiby Xu <coxu@redhat.com>
|
|
||||||
|
|
||||||
diff --git a/makedumpfile-1.7.4/arch/ppc64.c b/makedumpfile-1.7.4/arch/ppc64.c
|
|
||||||
index 3b4f91981f71d035b94282f6c7e33323a4e4c1fd..a54f9a04db7f26eac2f1bd065b134a7e2fdaeb67 100644
|
|
||||||
--- a/makedumpfile-1.7.4/arch/ppc64.c
|
|
||||||
+++ b/makedumpfile-1.7.4/arch/ppc64.c
|
|
||||||
@@ -568,7 +568,9 @@ get_machdep_info_ppc64(void)
|
|
||||||
/*
|
|
||||||
* Get vmalloc_start value from either vmap_area_list or vmlist.
|
|
||||||
*/
|
|
||||||
- if ((SYMBOL(vmap_area_list) != NOT_FOUND_SYMBOL)
|
|
||||||
+ if (NUMBER(vmalloc_start) != NOT_FOUND_NUMBER) {
|
|
||||||
+ vmalloc_start = NUMBER(vmalloc_start);
|
|
||||||
+ } else if ((SYMBOL(vmap_area_list) != NOT_FOUND_SYMBOL)
|
|
||||||
&& (OFFSET(vmap_area.va_start) != NOT_FOUND_STRUCTURE)
|
|
||||||
&& (OFFSET(vmap_area.list) != NOT_FOUND_STRUCTURE)) {
|
|
||||||
if (!readmem(VADDR, SYMBOL(vmap_area_list) + OFFSET(list_head.next),
|
|
||||||
@@ -689,11 +691,16 @@ vaddr_to_paddr_ppc64(unsigned long vaddr)
|
|
||||||
if ((SYMBOL(vmap_area_list) == NOT_FOUND_SYMBOL)
|
|
||||||
|| (OFFSET(vmap_area.va_start) == NOT_FOUND_STRUCTURE)
|
|
||||||
|| (OFFSET(vmap_area.list) == NOT_FOUND_STRUCTURE)) {
|
|
||||||
- if ((SYMBOL(vmlist) == NOT_FOUND_SYMBOL)
|
|
||||||
- || (OFFSET(vm_struct.addr) == NOT_FOUND_STRUCTURE)) {
|
|
||||||
- ERRMSG("Can't get info for vmalloc translation.\n");
|
|
||||||
- return NOT_PADDR;
|
|
||||||
- }
|
|
||||||
+ /*
|
|
||||||
+ * Don't depend on vmap_area_list/vmlist if vmalloc_start is set in
|
|
||||||
+ * vmcoreinfo, in that case proceed without error
|
|
||||||
+ */
|
|
||||||
+ if (NUMBER(vmalloc_start) == NOT_FOUND_NUMBER)
|
|
||||||
+ if ((SYMBOL(vmlist) == NOT_FOUND_SYMBOL)
|
|
||||||
+ || (OFFSET(vm_struct.addr) == NOT_FOUND_STRUCTURE)) {
|
|
||||||
+ ERRMSG("Can't get info for vmalloc translation.\n");
|
|
||||||
+ return NOT_PADDR;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
return ppc64_vtop_level4(vaddr);
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.c b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
index 58c6639f289f19cdbf39ed3899be9893fdc317fe..d7f1dd41d2cab526d7d40e809ddccf656c586811 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
@@ -2978,6 +2978,8 @@ read_vmcoreinfo(void)
|
|
||||||
READ_NUMBER("PAGE_OFFLINE_MAPCOUNT_VALUE", PAGE_OFFLINE_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("phys_base", phys_base);
|
|
||||||
READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
|
|
||||||
+
|
|
||||||
+ READ_NUMBER_UNSIGNED("VMALLOC_START", vmalloc_start);
|
|
||||||
#ifdef __aarch64__
|
|
||||||
READ_NUMBER("VA_BITS", VA_BITS);
|
|
||||||
READ_NUMBER("TCR_EL1_T1SZ", TCR_EL1_T1SZ);
|
|
||||||
@@ -2989,7 +2991,6 @@ read_vmcoreinfo(void)
|
|
||||||
READ_NUMBER("VA_BITS", va_bits);
|
|
||||||
READ_NUMBER_UNSIGNED("phys_ram_base", phys_ram_base);
|
|
||||||
READ_NUMBER_UNSIGNED("PAGE_OFFSET", page_offset);
|
|
||||||
- READ_NUMBER_UNSIGNED("VMALLOC_START", vmalloc_start);
|
|
||||||
READ_NUMBER_UNSIGNED("VMALLOC_END", vmalloc_end);
|
|
||||||
READ_NUMBER_UNSIGNED("VMEMMAP_START", vmemmap_start);
|
|
||||||
READ_NUMBER_UNSIGNED("VMEMMAP_END", vmemmap_end);
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.h b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
index c04c330b69ecbe5fb232a2eabbd2d71f14b60cc0..c31f3a4371af8aae38dcba8cac4d6de1012b4cfd 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
@@ -541,8 +541,6 @@ do { \
|
|
||||||
* The value of dependence on machine
|
|
||||||
*/
|
|
||||||
#define PAGE_OFFSET (info->page_offset)
|
|
||||||
-#define VMALLOC_START (info->vmalloc_start)
|
|
||||||
-#define VMALLOC_END (info->vmalloc_end)
|
|
||||||
#define VMEMMAP_START (info->vmemmap_start)
|
|
||||||
#define VMEMMAP_END (info->vmemmap_end)
|
|
||||||
#define PMASK (0x7ffffffffffff000UL)
|
|
||||||
@@ -2263,6 +2261,9 @@ struct number_table {
|
|
||||||
long HUGETLB_PAGE_DTOR;
|
|
||||||
long phys_base;
|
|
||||||
long KERNEL_IMAGE_SIZE;
|
|
||||||
+
|
|
||||||
+ unsigned long vmalloc_start;
|
|
||||||
+
|
|
||||||
#ifdef __aarch64__
|
|
||||||
long VA_BITS;
|
|
||||||
long TCR_EL1_T1SZ;
|
|
||||||
@@ -2273,7 +2274,6 @@ struct number_table {
|
|
||||||
long va_bits;
|
|
||||||
unsigned long phys_ram_base;
|
|
||||||
unsigned long page_offset;
|
|
||||||
- unsigned long vmalloc_start;
|
|
||||||
unsigned long vmalloc_end;
|
|
||||||
unsigned long vmemmap_start;
|
|
||||||
unsigned long vmemmap_end;
|
|
@ -1,99 +0,0 @@
|
|||||||
From 985e575253f1c2de8d6876cfe685c68a24ee06e1 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kazuhito Hagio <k-hagio-ab@nec.com>
|
|
||||||
Date: Thu, 30 May 2024 16:59:02 +0900
|
|
||||||
Subject: [PATCH 1/2] [PATCH] Fix failure of hugetlb pages exclusion on Linux
|
|
||||||
6.9 and later
|
|
||||||
|
|
||||||
* Required for kernel 6.9
|
|
||||||
|
|
||||||
Kernel commit d99e3140a4d3 ("mm: turn folio_test_hugetlb into a
|
|
||||||
PageType") moved the PG_hugetlb flag from folio._flags_1 into
|
|
||||||
page._mapcount and introduced NUMBER(PAGE_HUGETLB_MAPCOUNT_VALUE) entry
|
|
||||||
into vmcoreinfo.
|
|
||||||
|
|
||||||
Without the patch, "makedumpfile -d 8" cannot exclude hugetlb pages.
|
|
||||||
|
|
||||||
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
|
|
||||||
---
|
|
||||||
makedumpfile.c | 22 ++++++++++++++++++++--
|
|
||||||
makedumpfile.h | 3 +++
|
|
||||||
2 files changed, 23 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.c b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
index d7f1dd4..437ad91 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
@@ -2975,6 +2975,7 @@ read_vmcoreinfo(void)
|
|
||||||
READ_SRCFILE("pud_t", pud_t);
|
|
||||||
|
|
||||||
READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
|
|
||||||
+ READ_NUMBER("PAGE_HUGETLB_MAPCOUNT_VALUE", PAGE_HUGETLB_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("PAGE_OFFLINE_MAPCOUNT_VALUE", PAGE_OFFLINE_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("phys_base", phys_base);
|
|
||||||
READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
|
|
||||||
@@ -6510,6 +6511,9 @@ __exclude_unnecessary_pages(unsigned long mem_map,
|
|
||||||
_count = UINT(pcache + OFFSET(page._refcount));
|
|
||||||
mapping = ULONG(pcache + OFFSET(page.mapping));
|
|
||||||
|
|
||||||
+ if (OFFSET(page._mapcount) != NOT_FOUND_STRUCTURE)
|
|
||||||
+ _mapcount = UINT(pcache + OFFSET(page._mapcount));
|
|
||||||
+
|
|
||||||
compound_order = 0;
|
|
||||||
compound_dtor = 0;
|
|
||||||
/*
|
|
||||||
@@ -6520,6 +6524,22 @@ __exclude_unnecessary_pages(unsigned long mem_map,
|
|
||||||
if ((index_pg < PGMM_CACHED - 1) && isCompoundHead(flags)) {
|
|
||||||
unsigned char *addr = pcache + SIZE(page);
|
|
||||||
|
|
||||||
+ /*
|
|
||||||
+ * Linux 6.9 and later kernels use _mapcount value for hugetlb pages.
|
|
||||||
+ * See kernel commit d99e3140a4d3.
|
|
||||||
+ */
|
|
||||||
+ if (NUMBER(PAGE_HUGETLB_MAPCOUNT_VALUE) != NOT_FOUND_NUMBER) {
|
|
||||||
+ unsigned long _flags_1 = ULONG(addr + OFFSET(page.flags));
|
|
||||||
+ unsigned int PG_hugetlb = ~NUMBER(PAGE_HUGETLB_MAPCOUNT_VALUE);
|
|
||||||
+
|
|
||||||
+ compound_order = _flags_1 & 0xff;
|
|
||||||
+
|
|
||||||
+ if ((_mapcount & (PAGE_TYPE_BASE | PG_hugetlb)) == PAGE_TYPE_BASE)
|
|
||||||
+ compound_dtor = IS_HUGETLB;
|
|
||||||
+
|
|
||||||
+ goto check_order;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Linux 6.6 and later. Kernels that have PG_hugetlb should also
|
|
||||||
* have the compound order in the low byte of folio._flags_1.
|
|
||||||
@@ -6564,8 +6584,6 @@ check_order:
|
|
||||||
if (OFFSET(page.compound_head) != NOT_FOUND_STRUCTURE)
|
|
||||||
compound_head = ULONG(pcache + OFFSET(page.compound_head));
|
|
||||||
|
|
||||||
- if (OFFSET(page._mapcount) != NOT_FOUND_STRUCTURE)
|
|
||||||
- _mapcount = UINT(pcache + OFFSET(page._mapcount));
|
|
||||||
if (OFFSET(page.private) != NOT_FOUND_STRUCTURE)
|
|
||||||
private = ULONG(pcache + OFFSET(page.private));
|
|
||||||
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.h b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
index 75b66ce..f08c49f 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
@@ -165,6 +165,8 @@ test_bit(int nr, unsigned long addr)
|
|
||||||
#define isAnon(mapping, flags) (((unsigned long)mapping & PAGE_MAPPING_ANON) != 0 \
|
|
||||||
&& !isSlab(flags))
|
|
||||||
|
|
||||||
+#define PAGE_TYPE_BASE (0xf0000000)
|
|
||||||
+
|
|
||||||
#define PTOB(X) (((unsigned long long)(X)) << PAGESHIFT())
|
|
||||||
#define BTOP(X) (((unsigned long long)(X)) >> PAGESHIFT())
|
|
||||||
|
|
||||||
@@ -2255,6 +2257,7 @@ struct number_table {
|
|
||||||
long PG_hugetlb;
|
|
||||||
|
|
||||||
long PAGE_BUDDY_MAPCOUNT_VALUE;
|
|
||||||
+ long PAGE_HUGETLB_MAPCOUNT_VALUE;
|
|
||||||
long PAGE_OFFLINE_MAPCOUNT_VALUE;
|
|
||||||
long SECTION_SIZE_BITS;
|
|
||||||
long MAX_PHYSMEM_BITS;
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
|||||||
From bad2a7c4fa75d37a41578441468584963028bdda Mon Sep 17 00:00:00 2001
|
|
||||||
From: Kazuhito Hagio <k-hagio-ab@nec.com>
|
|
||||||
Date: Fri, 7 Jun 2024 15:34:05 +0900
|
|
||||||
Subject: [PATCH 2/2] [PATCH] Fix wrong exclusion of Slab pages on Linux
|
|
||||||
6.10-rc1 and later
|
|
||||||
|
|
||||||
* Required for kernel 6.10
|
|
||||||
|
|
||||||
Kernel commit 46df8e73a4a3 ("mm: free up PG_slab") moved the PG_slab
|
|
||||||
flag from page.flags into page._mapcount (slab.__page_type), and
|
|
||||||
introduced NUMBER(PAGE_SLAB_MAPCOUNT_VALUE) entry into vmcoreinfo.
|
|
||||||
|
|
||||||
Without the patch, "makedumpfile -d 8" option wrongly excludes Slab
|
|
||||||
pages and crash cannot open the dumpfile with an error like this:
|
|
||||||
|
|
||||||
$ crash --kaslr auto vmlinux dumpfile
|
|
||||||
...
|
|
||||||
please wait... (gathering task table data)
|
|
||||||
crash: page excluded: kernel virtual address: ffff909980440270 type: "xa_node.slots[off]"
|
|
||||||
|
|
||||||
Signed-off-by: Kazuhito Hagio <k-hagio-ab@nec.com>
|
|
||||||
---
|
|
||||||
makedumpfile.c | 24 +++++++++++++++++++-----
|
|
||||||
makedumpfile.h | 6 +++---
|
|
||||||
2 files changed, 22 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.c b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
index 437ad91..5b34712 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.c
|
|
||||||
@@ -275,13 +275,26 @@ isHugetlb(unsigned long dtor)
|
|
||||||
&& (SYMBOL(free_huge_page) == dtor));
|
|
||||||
}
|
|
||||||
|
|
||||||
+static inline int
|
|
||||||
+isSlab(unsigned long flags, unsigned int _mapcount)
|
|
||||||
+{
|
|
||||||
+ /* Linux 6.10 and later */
|
|
||||||
+ if (NUMBER(PAGE_SLAB_MAPCOUNT_VALUE) != NOT_FOUND_NUMBER) {
|
|
||||||
+ unsigned int PG_slab = ~NUMBER(PAGE_SLAB_MAPCOUNT_VALUE);
|
|
||||||
+ if ((_mapcount & (PAGE_TYPE_BASE | PG_slab)) == PAGE_TYPE_BASE)
|
|
||||||
+ return TRUE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return flags & (1UL << NUMBER(PG_slab));
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static int
|
|
||||||
isOffline(unsigned long flags, unsigned int _mapcount)
|
|
||||||
{
|
|
||||||
if (NUMBER(PAGE_OFFLINE_MAPCOUNT_VALUE) == NOT_FOUND_NUMBER)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
- if (flags & (1UL << NUMBER(PG_slab)))
|
|
||||||
+ if (isSlab(flags, _mapcount))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (_mapcount == (int)NUMBER(PAGE_OFFLINE_MAPCOUNT_VALUE))
|
|
||||||
@@ -2977,6 +2990,7 @@ read_vmcoreinfo(void)
|
|
||||||
READ_NUMBER("PAGE_BUDDY_MAPCOUNT_VALUE", PAGE_BUDDY_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("PAGE_HUGETLB_MAPCOUNT_VALUE", PAGE_HUGETLB_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("PAGE_OFFLINE_MAPCOUNT_VALUE", PAGE_OFFLINE_MAPCOUNT_VALUE);
|
|
||||||
+ READ_NUMBER("PAGE_SLAB_MAPCOUNT_VALUE", PAGE_SLAB_MAPCOUNT_VALUE);
|
|
||||||
READ_NUMBER("phys_base", phys_base);
|
|
||||||
READ_NUMBER("KERNEL_IMAGE_SIZE", KERNEL_IMAGE_SIZE);
|
|
||||||
|
|
||||||
@@ -6043,7 +6057,7 @@ static int
|
|
||||||
page_is_buddy_v3(unsigned long flags, unsigned int _mapcount,
|
|
||||||
unsigned long private, unsigned int _count)
|
|
||||||
{
|
|
||||||
- if (flags & (1UL << NUMBER(PG_slab)))
|
|
||||||
+ if (isSlab(flags, _mapcount))
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (_mapcount == (int)NUMBER(PAGE_BUDDY_MAPCOUNT_VALUE))
|
|
||||||
@@ -6618,7 +6632,7 @@ check_order:
|
|
||||||
*/
|
|
||||||
else if ((info->dump_level & DL_EXCLUDE_CACHE)
|
|
||||||
&& is_cache_page(flags)
|
|
||||||
- && !isPrivate(flags) && !isAnon(mapping, flags)) {
|
|
||||||
+ && !isPrivate(flags) && !isAnon(mapping, flags, _mapcount)) {
|
|
||||||
pfn_counter = &pfn_cache;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
@@ -6626,7 +6640,7 @@ check_order:
|
|
||||||
*/
|
|
||||||
else if ((info->dump_level & DL_EXCLUDE_CACHE_PRI)
|
|
||||||
&& is_cache_page(flags)
|
|
||||||
- && !isAnon(mapping, flags)) {
|
|
||||||
+ && !isAnon(mapping, flags, _mapcount)) {
|
|
||||||
if (isPrivate(flags))
|
|
||||||
pfn_counter = &pfn_cache_private;
|
|
||||||
else
|
|
||||||
@@ -6638,7 +6652,7 @@ check_order:
|
|
||||||
* - hugetlbfs pages
|
|
||||||
*/
|
|
||||||
else if ((info->dump_level & DL_EXCLUDE_USER_DATA)
|
|
||||||
- && (isAnon(mapping, flags) || isHugetlb(compound_dtor))) {
|
|
||||||
+ && (isAnon(mapping, flags, _mapcount) || isHugetlb(compound_dtor))) {
|
|
||||||
pfn_counter = &pfn_user;
|
|
||||||
}
|
|
||||||
/*
|
|
||||||
diff --git a/makedumpfile-1.7.4/makedumpfile.h b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
index f08c49f..6b43a8b 100644
|
|
||||||
--- a/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
+++ b/makedumpfile-1.7.4/makedumpfile.h
|
|
||||||
@@ -161,9 +161,8 @@ test_bit(int nr, unsigned long addr)
|
|
||||||
#define isSwapBacked(flags) test_bit(NUMBER(PG_swapbacked), flags)
|
|
||||||
#define isHWPOISON(flags) (test_bit(NUMBER(PG_hwpoison), flags) \
|
|
||||||
&& (NUMBER(PG_hwpoison) != NOT_FOUND_NUMBER))
|
|
||||||
-#define isSlab(flags) test_bit(NUMBER(PG_slab), flags)
|
|
||||||
-#define isAnon(mapping, flags) (((unsigned long)mapping & PAGE_MAPPING_ANON) != 0 \
|
|
||||||
- && !isSlab(flags))
|
|
||||||
+#define isAnon(mapping, flags, _mapcount) \
|
|
||||||
+ (((unsigned long)mapping & PAGE_MAPPING_ANON) != 0 && !isSlab(flags, _mapcount))
|
|
||||||
|
|
||||||
#define PAGE_TYPE_BASE (0xf0000000)
|
|
||||||
|
|
||||||
@@ -2259,6 +2258,7 @@ struct number_table {
|
|
||||||
long PAGE_BUDDY_MAPCOUNT_VALUE;
|
|
||||||
long PAGE_HUGETLB_MAPCOUNT_VALUE;
|
|
||||||
long PAGE_OFFLINE_MAPCOUNT_VALUE;
|
|
||||||
+ long PAGE_SLAB_MAPCOUNT_VALUE;
|
|
||||||
long SECTION_SIZE_BITS;
|
|
||||||
long MAX_PHYSMEM_BITS;
|
|
||||||
long HUGETLB_PAGE_DTOR;
|
|
||||||
--
|
|
||||||
2.40.1
|
|
||||||
|
|
232
kexec-tools.spec
232
kexec-tools.spec
@ -1,9 +1,3 @@
|
|||||||
%global eppic_ver e8844d3793471163ae4a56d8f95897be9e5bd554
|
|
||||||
%global eppic_shortver %(c=%{eppic_ver}; echo ${c:0:7})
|
|
||||||
%global mkdf_ver 1.7.4
|
|
||||||
%global kdump_utils_ver 1.0.42
|
|
||||||
%global mkdf_shortver %(c=%{mkdf_ver}; echo ${c:0:7})
|
|
||||||
|
|
||||||
Name: kexec-tools
|
Name: kexec-tools
|
||||||
Version: 2.0.28
|
Version: 2.0.28
|
||||||
Release: 14%{?dist}
|
Release: 14%{?dist}
|
||||||
@ -13,9 +7,6 @@ Summary: The kexec/kdump userspace component
|
|||||||
|
|
||||||
Source0: http://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.xz
|
Source0: http://kernel.org/pub/linux/utils/kernel/kexec/%{name}-%{version}.tar.xz
|
||||||
Recommends: kdump-utils
|
Recommends: kdump-utils
|
||||||
Source1: https://github.com/rhkdump/kdump-utils/archive/v%{kdump_utils_ver}/kdump-utils-%{kdump_utils_ver}.tar.gz
|
|
||||||
Source9: https://github.com/makedumpfile/makedumpfile/archive/%{mkdf_ver}/makedumpfile-%{mkdf_shortver}.tar.gz
|
|
||||||
Source19: https://github.com/lucchouina/eppic/archive/%{eppic_ver}/eppic-%{eppic_shortver}.tar.gz
|
|
||||||
|
|
||||||
BuildRequires: automake
|
BuildRequires: automake
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
@ -54,25 +45,6 @@ Patch101: kexec-tools-2.0.28-Fix-building-on-x86_64-with-binutils-2.41.patch
|
|||||||
# Author: Jiri Bohac <jbohac@suse.cz>
|
# Author: Jiri Bohac <jbohac@suse.cz>
|
||||||
Patch601: kexec-tools-2.0.28-kexec-don-t-use-kexec_file_load-on-XEN.patch
|
Patch601: kexec-tools-2.0.28-kexec-don-t-use-kexec_file_load-on-XEN.patch
|
||||||
|
|
||||||
Patch602: kexec-tools-2.0.28-makedumfpile-0001-PATCH-ppc64-get-vmalloc-start-address-from-vmcoreinf.patch
|
|
||||||
Patch603: 0001-dracut-module-setup-Fix-missing-systemd-system.conf-.patch
|
|
||||||
Patch604: 0002-mkdumprd-Fix-makedumpfile-parameter-check.patch
|
|
||||||
Patch605: 0003-Try-to-install-PHY-and-MDIO-bus-drivers-explicitly.patch
|
|
||||||
Patch606: 0004-Install-the-driver-of-physical-device-for-a-SR-IOV-v.patch
|
|
||||||
Patch607: 0005-update-98-kexec-rules-for-crash-hotplug.patch
|
|
||||||
Patch608: 0006-sysconfig-add-pcie_ports-compat-to-KDUMP_COMMANDLINE.patch
|
|
||||||
Patch609: 0007-fadump-udev-do-not-re-register-fadump-if-kernel-hotp.patch
|
|
||||||
Patch610: kexec-tools-2.0.28-makedumpfile-0002-PATCH-Fix-failure-of-hugetlb-pages-exclusion-on-Linu.patch
|
|
||||||
Patch611: kexec-tools-2.0.28-makedumpfile-0003-PATCH-Fix-wrong-exclusion-of-Slab-pages-on-Linux-6.1.patch
|
|
||||||
Patch612: 0001-Use-grep-q-cmd-instead-of-cmd-grep-q.patch
|
|
||||||
Patch613: 0001-kdumpctl-Drop-default-kexec-d-option.patch
|
|
||||||
Patch614: 0002-kdump-lib-fix-sed-expression-in-prepare_cmdline-on-a.patch
|
|
||||||
Patch615: 0003-kdumpctl-Simplify-fadump-handling-in-reset_crashkern.patch
|
|
||||||
Patch616: 0004-kdumpctl.8-Add-description-to-reset-crashkernel-rebo.patch
|
|
||||||
Patch617: 0005-dracut-kdump.sh-Save-kexec-dmesg.log-after-failure_a.patch
|
|
||||||
Patch618: 0006-Makefile-Fix-early-kdump-file-names.patch
|
|
||||||
Patch619: 0007-kdump-lib-Drop-file-dependency-in-is_uki.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
kexec-tools provides /sbin/kexec binary that facilitates a new
|
kexec-tools provides /sbin/kexec binary that facilitates a new
|
||||||
kernel to boot using the kernel's kexec feature either on a
|
kernel to boot using the kernel's kexec feature either on a
|
||||||
@ -80,100 +52,13 @@ normal or a panic reboot. This package contains the /sbin/kexec
|
|||||||
binary and ancillary utilities that together form the userspace
|
binary and ancillary utilities that together form the userspace
|
||||||
component of the kernel's kexec feature.
|
component of the kernel's kexec feature.
|
||||||
|
|
||||||
|
|
||||||
%package -n makedumpfile
|
|
||||||
Version: %{mkdf_ver}
|
|
||||||
Summary: make a small dumpfile of kdump
|
|
||||||
License: GPL-2.0-only
|
|
||||||
URL: https://github.com/makedumpfile/makedumpfile
|
|
||||||
|
|
||||||
Conflicts: kexec-tools < 2.0.28-5
|
|
||||||
BuildRequires: make
|
|
||||||
BuildRequires: gcc
|
|
||||||
BuildRequires: zlib-devel
|
|
||||||
BuildRequires: elfutils-devel
|
|
||||||
BuildRequires: glib2-devel
|
|
||||||
BuildRequires: bzip2-devel
|
|
||||||
BuildRequires: ncurses-devel
|
|
||||||
BuildRequires: bison
|
|
||||||
BuildRequires: flex
|
|
||||||
BuildRequires: lzo-devel
|
|
||||||
BuildRequires: snappy-devel
|
|
||||||
BuildRequires: libzstd-devel
|
|
||||||
BuildRequires: pkgconfig
|
|
||||||
BuildRequires: intltool
|
|
||||||
BuildRequires: gettext
|
|
||||||
|
|
||||||
|
|
||||||
%description -n makedumpfile
|
|
||||||
makedumpfile is a tool to compress and filter out unneeded data from kernel
|
|
||||||
dumps to reduce its file size. It is typically used with the kdump mechanism.
|
|
||||||
|
|
||||||
|
|
||||||
%package -n kdump-utils
|
|
||||||
Version: 1.0.42
|
|
||||||
License: GPL-2.0-only AND LGPL-2.1-or-later
|
|
||||||
URL: https://github.com/rhkdump/kdump-utils
|
|
||||||
Summary: Kernel crash dump collection utilities
|
|
||||||
|
|
||||||
%ifarch ppc64 ppc64le
|
|
||||||
Requires(post): servicelog
|
|
||||||
Recommends: keyutils
|
|
||||||
%endif
|
|
||||||
Requires(pre): coreutils
|
|
||||||
Requires(pre): sed
|
|
||||||
Requires: kexec-tools >= 2.0.28-8
|
|
||||||
Requires: makedumpfile
|
|
||||||
Requires: dracut >= 058
|
|
||||||
Requires: dracut-network >= 058
|
|
||||||
Requires: dracut-squash >= 058
|
|
||||||
Requires: ethtool
|
|
||||||
Requires: util-linux
|
|
||||||
# Needed for UKI support
|
|
||||||
Recommends: binutils
|
|
||||||
Recommends: grubby
|
|
||||||
Recommends: hostname
|
|
||||||
BuildRequires: systemd-rpm-macros
|
|
||||||
|
|
||||||
%ifnarch s390x
|
|
||||||
Requires: systemd-udev%{?_isa}
|
|
||||||
%endif
|
|
||||||
%description -n kdump-utils
|
|
||||||
kdump-utils is responsible for collecting the crash kernel dump. It builds and
|
|
||||||
loads the kdump initramfs so when a kernel crashes, the system will boot the
|
|
||||||
kdump kernel and initramfs to save the collected crash kernel dump to specified
|
|
||||||
target.
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
tar -z -x -v -f %{SOURCE1}
|
|
||||||
|
|
||||||
mkdir -p -m755 kcp
|
mkdir -p -m755 kcp
|
||||||
tar -z -x -v -f %{SOURCE9}
|
|
||||||
tar -z -x -v -f %{SOURCE19}
|
|
||||||
|
|
||||||
%patch 101 -p1
|
%patch 101 -p1
|
||||||
%patch 601 -p1
|
%patch 601 -p1
|
||||||
%patch 602 -p1
|
|
||||||
%patch 603 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 604 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 605 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 606 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 607 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 608 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 609 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 610 -p1
|
|
||||||
%patch 611 -p1
|
|
||||||
%patch 612 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 613 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 614 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 615 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 616 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 617 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 618 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
%patch 619 -p1 -d kdump-utils-%{kdump_utils_ver}
|
|
||||||
|
|
||||||
%ifarch ppc
|
%ifarch ppc
|
||||||
%define archdef ARCH=ppc
|
%define archdef ARCH=ppc
|
||||||
@ -194,80 +79,10 @@ autoreconf
|
|||||||
rm -f kexec-tools.spec.in
|
rm -f kexec-tools.spec.in
|
||||||
%make_build
|
%make_build
|
||||||
|
|
||||||
# makedumpfile
|
|
||||||
make -C eppic-%{eppic_ver}/libeppic
|
|
||||||
make -C makedumpfile-%{mkdf_ver} LINKTYPE=dynamic USELZO=on USESNAPPY=on USEZSTD=on
|
|
||||||
make -C makedumpfile-%{mkdf_ver} LDFLAGS="$LDFLAGS -I../eppic-%{eppic_ver}/libeppic -L../eppic-%{eppic_ver}/libeppic" eppic_makedumpfile.so
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
rm -f %{buildroot}/%{_libdir}/kexec-tools/kexec_test
|
rm -f %{buildroot}/%{_libdir}/kexec-tools/kexec_test
|
||||||
|
|
||||||
# kdump-utils
|
|
||||||
%define kdump_utils_dir kdump-utils-%{kdump_utils_ver}
|
|
||||||
make DESTDIR=%{buildroot} -C %kdump_utils_dir install
|
|
||||||
|
|
||||||
# makedumpfile
|
|
||||||
|
|
||||||
make DESTDIR=%{buildroot} -C makedumpfile-%{mkdf_ver} install
|
|
||||||
install -m 644 -D makedumpfile-%{mkdf_ver}/makedumpfile.conf %{buildroot}/%{_sysconfdir}/makedumpfile.conf.sample
|
|
||||||
rm %{buildroot}/%{_sbindir}/makedumpfile-R.pl
|
|
||||||
|
|
||||||
install -m 755 -D makedumpfile-%{mkdf_ver}/eppic_makedumpfile.so %{buildroot}/%{_libdir}/eppic_makedumpfile.so
|
|
||||||
|
|
||||||
%post -n kdump-utils
|
|
||||||
# don't try to systemctl preset the kdump service for old kexec-tools
|
|
||||||
#
|
|
||||||
# when the old kexec-tools gets removed, this trigger will be excuted to
|
|
||||||
# create a file. So later the posttrans scriptlet will know there is no need to
|
|
||||||
# systemctl preset the kdump service.
|
|
||||||
# This solution can be dropped in F41 when we assume no users will use old
|
|
||||||
# version of kexec-tools.
|
|
||||||
%define kexec_tools_no_preset %{_localstatedir}/lib/rpm-state/kexec-tools.no-preset
|
|
||||||
%triggerun -- kexec-tools
|
|
||||||
touch %{kexec_tools_no_preset}
|
|
||||||
|
|
||||||
touch /etc/kdump.conf
|
|
||||||
|
|
||||||
%ifarch ppc64 ppc64le
|
|
||||||
servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh 2>/dev/null
|
|
||||||
servicelog_notify --add --command=/usr/lib/kdump/kdump-migrate-action.sh --match='refcode="#MIGRATE" and serviceable=0' --type=EVENT --method=pairs_stdin >/dev/null
|
|
||||||
%endif
|
|
||||||
:
|
|
||||||
|
|
||||||
|
|
||||||
%postun -n kdump-utils
|
|
||||||
%systemd_postun_with_restart kdump.service
|
|
||||||
|
|
||||||
%preun -n kdump-utils
|
|
||||||
%ifarch ppc64 ppc64le
|
|
||||||
servicelog_notify --remove --command=/usr/lib/kdump/kdump-migrate-action.sh >/dev/null
|
|
||||||
%endif
|
|
||||||
%systemd_preun kdump.service
|
|
||||||
|
|
||||||
|
|
||||||
%posttrans -n kdump-utils
|
|
||||||
# don't try to systemctl preset the kdump service for old kexec-tools
|
|
||||||
if [[ -f %{kexec_tools_no_preset} ]]; then
|
|
||||||
# this if branch can be removed in F41 when we assume no users will use the old kexec-tools
|
|
||||||
rm %{kexec_tools_no_preset}
|
|
||||||
else
|
|
||||||
# Initial installation
|
|
||||||
%systemd_post kdump.service
|
|
||||||
fi
|
|
||||||
# Try to reset kernel crashkernel value to new default value or set up
|
|
||||||
# crasherkernel value for new install
|
|
||||||
#
|
|
||||||
# Note
|
|
||||||
# 1. Skip ostree systems as they are not supported.
|
|
||||||
# 2. For Fedora 36 and RHEL9, "[ $1 == 1 ]" in posttrans scriptlet means both install and upgrade;
|
|
||||||
# For Fedora > 36, "[ $1 == 1 ]" only means install and "[ $1 == 2 ]" means upgrade
|
|
||||||
if [ ! -f /run/ostree-booted ] && [ $1 == 1 -o $1 == 2 ]; then
|
|
||||||
kdumpctl _reset-crashkernel-after-update
|
|
||||||
:
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%{_sbindir}/kexec
|
%{_sbindir}/kexec
|
||||||
@ -278,53 +93,6 @@ fi
|
|||||||
%license COPYING
|
%license COPYING
|
||||||
%doc TODO
|
%doc TODO
|
||||||
|
|
||||||
%files -n kdump-utils
|
|
||||||
%ifarch ppc64 ppc64le
|
|
||||||
%{_sbindir}/mkfadumprd
|
|
||||||
%{_prefix}/lib/kernel/install.d/60-fadump.install
|
|
||||||
%endif
|
|
||||||
%{_sbindir}/mkdumprd
|
|
||||||
%{_bindir}/*
|
|
||||||
%{_prefix}/lib/kdump
|
|
||||||
%config(noreplace,missingok) %{_sysconfdir}/sysconfig/kdump
|
|
||||||
%config(noreplace,missingok) %verify(not mtime) %{_sysconfdir}/kdump.conf
|
|
||||||
%ifnarch s390x
|
|
||||||
%{_udevrulesdir}
|
|
||||||
%{_udevrulesdir}/../kdump-udev-throttler
|
|
||||||
%endif
|
|
||||||
%{_prefix}/lib/dracut/modules.d/*
|
|
||||||
%dir %{_localstatedir}/crash
|
|
||||||
%dir %{_sysconfdir}/kdump
|
|
||||||
%dir %{_sysconfdir}/kdump/pre.d
|
|
||||||
%dir %{_sysconfdir}/kdump/post.d
|
|
||||||
%dir %{_sharedstatedir}/kdump
|
|
||||||
%{_mandir}/man8/kdumpctl.8*
|
|
||||||
%{_mandir}/man8/mkdumprd.8*
|
|
||||||
%{_mandir}/man5/kdump.conf.5*
|
|
||||||
%{_unitdir}/kdump.service
|
|
||||||
%{_prefix}/lib/systemd/system-generators/kdump-dep-generator.sh
|
|
||||||
%{_prefix}/lib/kernel/install.d/60-kdump.install
|
|
||||||
%{_prefix}/lib/kernel/install.d/92-crashkernel.install
|
|
||||||
%license %kdump_utils_dir/COPYING
|
|
||||||
%doc %kdump_utils_dir/kexec-kdump-howto.txt
|
|
||||||
%doc %kdump_utils_dir/early-kdump-howto.txt
|
|
||||||
%doc %kdump_utils_dir/fadump-howto.txt
|
|
||||||
%doc %kdump_utils_dir/kdump-in-cluster-environment.txt
|
|
||||||
%doc %kdump_utils_dir/live-image-kdump-howto.txt
|
|
||||||
%doc %kdump_utils_dir/crashkernel-howto.txt
|
|
||||||
%doc %kdump_utils_dir/supported-kdump-targets.txt
|
|
||||||
|
|
||||||
|
|
||||||
%files -n makedumpfile
|
|
||||||
%license makedumpfile-%{mkdf_ver}/COPYING
|
|
||||||
%{_sbindir}/makedumpfile
|
|
||||||
%{_mandir}/man5/makedumpfile.conf.5.*
|
|
||||||
%{_mandir}/man8/makedumpfile.8.*
|
|
||||||
%{_sysconfdir}/makedumpfile.conf.sample
|
|
||||||
%{_libdir}/eppic_makedumpfile.so
|
|
||||||
%{_datadir}/makedumpfile/
|
|
||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Fri Jul 12 2024 Lichen Liu <lichliu@redhat.com> - 2.0.28-14
|
* Fri Jul 12 2024 Lichen Liu <lichliu@redhat.com> - 2.0.28-14
|
||||||
- Various fixes.
|
- Various fixes.
|
||||||
|
Loading…
Reference in New Issue
Block a user