import CS kexec-tools-2.0.27-15.el9
This commit is contained in:
parent
576349899b
commit
4895d8186b
@ -391,10 +391,18 @@ _get_hpyerv_physical_driver() {
|
|||||||
_get_nic_driver "$_physical_nic"
|
_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() {
|
kdump_install_nic_driver() {
|
||||||
local _netif _driver _drivers
|
local _netif _driver _drivers
|
||||||
|
|
||||||
_drivers=()
|
_drivers=('=drivers/net/phy' '=drivers/net/mdio')
|
||||||
|
|
||||||
for _netif in $1; do
|
for _netif in $1; do
|
||||||
[[ $_netif == lo ]] && continue
|
[[ $_netif == lo ]] && continue
|
||||||
@ -418,6 +426,9 @@ kdump_install_nic_driver() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
_drivers+=("$_driver")
|
_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
|
done
|
||||||
|
|
||||||
[[ -n ${_drivers[*]} ]] || return
|
[[ -n ${_drivers[*]} ]] || return
|
||||||
@ -483,6 +494,24 @@ _find_znet_nmconnection() {
|
|||||||
"$1"/*.nmconnection | LC_ALL=C sed -e "$2"
|
"$1"/*.nmconnection | LC_ALL=C sed -e "$2"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kdump_setup_ovs() {
|
||||||
|
local _netdev="$1"
|
||||||
|
local _dev _phy_if
|
||||||
|
|
||||||
|
_phy_if=$(ovs_find_phy_if "$_netdev")
|
||||||
|
|
||||||
|
if kdump_is_bridge "$_phy_if"; then
|
||||||
|
kdump_setup_vlan "$_phy_if"
|
||||||
|
elif kdump_is_bond "$_phy_if"; then
|
||||||
|
kdump_setup_bond "$_phy_if" || return 1
|
||||||
|
elif kdump_is_team "$_phy_if"; then
|
||||||
|
derror "Ovs bridge over team is not supported!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
_save_kdump_netifs "$_phy_if"
|
||||||
|
}
|
||||||
|
|
||||||
# setup s390 znet
|
# setup s390 znet
|
||||||
#
|
#
|
||||||
# Note part of code is extracted from ccw_init provided by s390utils
|
# Note part of code is extracted from ccw_init provided by s390utils
|
||||||
@ -534,6 +563,28 @@ kdump_get_remote_ip() {
|
|||||||
echo "$_remote"
|
echo "$_remote"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Find the physical interface of Open vSwitch (Ovs) bridge
|
||||||
|
#
|
||||||
|
# The physical network interface has the same MAC address as the Ovs bridge
|
||||||
|
ovs_find_phy_if() {
|
||||||
|
local _mac _dev
|
||||||
|
_mac=$(kdump_get_mac_addr $1)
|
||||||
|
|
||||||
|
for _dev in $(ovs-vsctl list-ifaces $1); do
|
||||||
|
if [[ $_mac == $(</sys/class/net/$_dev/address) ]]; then
|
||||||
|
echo -n "$_dev"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# Tell if a network interface is an Open vSwitch (Ovs) bridge
|
||||||
|
kdump_is_ovs_bridge() {
|
||||||
|
[[ $(_get_nic_driver $1) == openvswitch ]]
|
||||||
|
}
|
||||||
|
|
||||||
# Collect netifs needed by kdump
|
# Collect netifs needed by kdump
|
||||||
# $1: destination host
|
# $1: destination host
|
||||||
kdump_collect_netif_usage() {
|
kdump_collect_netif_usage() {
|
||||||
@ -557,6 +608,9 @@ kdump_collect_netif_usage() {
|
|||||||
kdump_setup_team "$_netdev"
|
kdump_setup_team "$_netdev"
|
||||||
elif kdump_is_vlan "$_netdev"; then
|
elif kdump_is_vlan "$_netdev"; then
|
||||||
kdump_setup_vlan "$_netdev"
|
kdump_setup_vlan "$_netdev"
|
||||||
|
elif kdump_is_ovs_bridge "$_netdev"; then
|
||||||
|
has_ovs_bridge=yes
|
||||||
|
kdump_setup_ovs "$_netdev"
|
||||||
fi
|
fi
|
||||||
_save_kdump_netifs "$_netdev"
|
_save_kdump_netifs "$_netdev"
|
||||||
|
|
||||||
@ -603,6 +657,29 @@ kdump_install_resolv_conf() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kdump_install_ovs_deps() {
|
||||||
|
[[ $has_ovs_bridge == yes ]] || return 0
|
||||||
|
inst_multiple -o $(rpm -ql NetworkManager-ovs) $(rpm -ql $(rpm -qf /usr/lib/systemd/system/openvswitch.service)) /sbin/sysctl /usr/bin/uuidgen /usr/bin/hostname /usr/bin/touch /usr/bin/expr /usr/bin/id /usr/bin/install /usr/bin/setpriv /usr/bin/nice /usr/bin/df
|
||||||
|
# 1. Overwrite the copied /etc/sysconfig/openvswitch so
|
||||||
|
# ovsdb-server.service can run as the default user root.
|
||||||
|
# /etc/sysconfig/openvswitch by default intructs ovsdb-server.service to
|
||||||
|
# run as USER=openvswitch, However openvswitch doesn't have the permission
|
||||||
|
# to write to /tmp in kdump initrd and ovsdb-server.servie will fail
|
||||||
|
# with the error "ovs-ctl[1190]: ovsdb-server: failed to create temporary
|
||||||
|
# file (Permission denied)". So run ovsdb-server.service as root instead
|
||||||
|
#
|
||||||
|
# 2. Bypass the error "referential integrity violation: Table Port column
|
||||||
|
# interfaces row" caused by we changing the connection profiles
|
||||||
|
echo "OPTIONS=\"--ovsdb-server-options='--disable-file-column-diff'\"" >"${initdir}/etc/sysconfig/openvswitch"
|
||||||
|
|
||||||
|
KDUMP_DROP_IN_DIR="${initdir}/etc/systemd/system/nm-initrd.service.d"
|
||||||
|
mkdir -p "$KDUMP_DROP_IN_DIR"
|
||||||
|
printf "[Unit]\nAfter=openvswitch.service\n" >$KDUMP_DROP_IN_DIR/01-after-ovs.conf
|
||||||
|
|
||||||
|
$SYSTEMCTL -q --root "$initdir" enable openvswitch.service
|
||||||
|
$SYSTEMCTL -q --root "$initdir" add-wants basic.target openvswitch.service
|
||||||
|
}
|
||||||
|
|
||||||
# Setup dracut to bring up network interface that enable
|
# Setup dracut to bring up network interface that enable
|
||||||
# initramfs accessing giving destination
|
# initramfs accessing giving destination
|
||||||
kdump_install_net() {
|
kdump_install_net() {
|
||||||
@ -616,6 +693,7 @@ kdump_install_net() {
|
|||||||
kdump_install_nm_netif_allowlist "$_netifs"
|
kdump_install_nm_netif_allowlist "$_netifs"
|
||||||
kdump_install_nic_driver "$_netifs"
|
kdump_install_nic_driver "$_netifs"
|
||||||
kdump_install_resolv_conf
|
kdump_install_resolv_conf
|
||||||
|
kdump_install_ovs_deps
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1030,7 +1108,7 @@ remove_cpu_online_rule() {
|
|||||||
|
|
||||||
install() {
|
install() {
|
||||||
declare -A unique_netifs ipv4_usage ipv6_usage
|
declare -A unique_netifs ipv4_usage ipv6_usage
|
||||||
local arch
|
local arch has_ovs_bridge
|
||||||
|
|
||||||
kdump_module_init
|
kdump_module_init
|
||||||
kdump_install_conf
|
kdump_install_conf
|
||||||
@ -1077,6 +1155,9 @@ install() {
|
|||||||
# Also redirect dracut-emergency to kdump error handler
|
# Also redirect dracut-emergency to kdump error handler
|
||||||
ln_r "$systemdsystemunitdir/emergency.service" "$systemdsystemunitdir/dracut-emergency.service"
|
ln_r "$systemdsystemunitdir/emergency.service" "$systemdsystemunitdir/dracut-emergency.service"
|
||||||
|
|
||||||
|
# Disable ostree as we only need the physical root
|
||||||
|
systemctl -q --root "$initdir" mask ostree-prepare-root.service
|
||||||
|
|
||||||
# Check for all the devices and if any device is iscsi, bring up iscsi
|
# Check for all the devices and if any device is iscsi, bring up iscsi
|
||||||
# target. Ideally all this should be pushed into dracut iscsi module
|
# target. Ideally all this should be pushed into dracut iscsi module
|
||||||
# at some point of time.
|
# at some point of time.
|
||||||
|
@ -101,8 +101,15 @@ get_fs_type_from_target()
|
|||||||
|
|
||||||
get_mntpoint_from_target()
|
get_mntpoint_from_target()
|
||||||
{
|
{
|
||||||
# --source is applied to ensure non-bind mount is returned
|
local SOURCE TARGET
|
||||||
get_mount_info TARGET source "$1" -f
|
findmnt -k --pairs -o SOURCE,TARGET "$1" | while read line; do
|
||||||
|
eval "$line"
|
||||||
|
# omit sources that are bind mounts i.e. they contain a [/path/to/subpath].
|
||||||
|
if [[ ! "$SOURCE" =~ \[ ]]; then
|
||||||
|
echo $TARGET
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
is_ssh_dump_target()
|
is_ssh_dump_target()
|
||||||
|
@ -15,7 +15,7 @@ is_uki()
|
|||||||
img="$1"
|
img="$1"
|
||||||
|
|
||||||
[[ -f "$img" ]] || return
|
[[ -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
|
objdump -h -j .linux "$img" &> /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,7 +213,7 @@ get_bind_mount_source()
|
|||||||
|
|
||||||
_fsroot=${_src#${_src_nofsroot}[}
|
_fsroot=${_src#${_src_nofsroot}[}
|
||||||
_fsroot=${_fsroot%]}
|
_fsroot=${_fsroot%]}
|
||||||
_mnt=$(get_mount_info TARGET source "$_src_nofsroot" -f)
|
_mnt=$(get_mntpoint_from_target "$_src_nofsroot")
|
||||||
|
|
||||||
# for btrfs, _fsroot will also contain the subvol value as well, strip it
|
# for btrfs, _fsroot will also contain the subvol value as well, strip it
|
||||||
if [[ $_fstype == btrfs ]]; then
|
if [[ $_fstype == btrfs ]]; then
|
||||||
|
@ -21,7 +21,7 @@ KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swio
|
|||||||
|
|
||||||
# This variable lets us append arguments to the current kdump commandline
|
# This variable lets us append arguments to the current kdump commandline
|
||||||
# after processed by KDUMP_COMMANDLINE_REMOVE
|
# after processed by KDUMP_COMMANDLINE_REMOVE
|
||||||
KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 reset_devices novmcoredd cma=0 hugetlb_cma=0"
|
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 reset_devices novmcoredd cma=0 hugetlb_cma=0"
|
||||||
|
|
||||||
# Any additional kexec arguments required. In most situations, this should
|
# Any additional kexec arguments required. In most situations, this should
|
||||||
# be left empty
|
# be left empty
|
||||||
|
@ -21,7 +21,7 @@ KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swio
|
|||||||
|
|
||||||
# This variable lets us append arguments to the current kdump commandline
|
# This variable lets us append arguments to the current kdump commandline
|
||||||
# after processed by KDUMP_COMMANDLINE_REMOVE
|
# after processed by KDUMP_COMMANDLINE_REMOVE
|
||||||
KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0"
|
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0"
|
||||||
|
|
||||||
# Any additional kexec arguments required. In most situations, this should
|
# Any additional kexec arguments required. In most situations, this should
|
||||||
# be left empty
|
# be left empty
|
||||||
|
@ -21,7 +21,7 @@ KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swio
|
|||||||
|
|
||||||
# This variable lets us append arguments to the current kdump commandline
|
# This variable lets us append arguments to the current kdump commandline
|
||||||
# after processed by KDUMP_COMMANDLINE_REMOVE
|
# after processed by KDUMP_COMMANDLINE_REMOVE
|
||||||
KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0"
|
KDUMP_COMMANDLINE_APPEND="irqpoll nr_cpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0"
|
||||||
|
|
||||||
# Any additional kexec arguments required. In most situations, this should
|
# Any additional kexec arguments required. In most situations, this should
|
||||||
# be left empty
|
# be left empty
|
||||||
|
@ -21,7 +21,7 @@ KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swio
|
|||||||
|
|
||||||
# This variable lets us append arguments to the current kdump commandline
|
# This variable lets us append arguments to the current kdump commandline
|
||||||
# after processed by KDUMP_COMMANDLINE_REMOVE
|
# after processed by KDUMP_COMMANDLINE_REMOVE
|
||||||
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"
|
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 pcie_ports=compat"
|
||||||
|
|
||||||
# Any additional kexec arguments required. In most situations, this should
|
# Any additional kexec arguments required. In most situations, this should
|
||||||
# be left empty
|
# be left empty
|
||||||
|
@ -5,7 +5,6 @@ KDUMP_KERNELVER=""
|
|||||||
KDUMP_KERNEL=""
|
KDUMP_KERNEL=""
|
||||||
KDUMP_COMMANDLINE=""
|
KDUMP_COMMANDLINE=""
|
||||||
KEXEC_ARGS=""
|
KEXEC_ARGS=""
|
||||||
KDUMP_LOG_PATH="/var/log"
|
|
||||||
MKDUMPRD="/sbin/mkdumprd -f"
|
MKDUMPRD="/sbin/mkdumprd -f"
|
||||||
MKFADUMPRD="/sbin/mkfadumprd"
|
MKFADUMPRD="/sbin/mkfadumprd"
|
||||||
DRACUT_MODULES_FILE="/usr/lib/dracut/modules.txt"
|
DRACUT_MODULES_FILE="/usr/lib/dracut/modules.txt"
|
||||||
@ -21,7 +20,7 @@ TARGET_INITRD=""
|
|||||||
DEFAULT_DUMP_MODE="kdump"
|
DEFAULT_DUMP_MODE="kdump"
|
||||||
image_time=0
|
image_time=0
|
||||||
|
|
||||||
standard_kexec_args="-d -p"
|
standard_kexec_args="-p"
|
||||||
|
|
||||||
# Some default values in case /etc/sysconfig/kdump doesn't include
|
# Some default values in case /etc/sysconfig/kdump doesn't include
|
||||||
KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug"
|
KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug"
|
||||||
@ -639,7 +638,7 @@ function load_kdump_kernel_key()
|
|||||||
# as the currently running kernel.
|
# as the currently running kernel.
|
||||||
load_kdump()
|
load_kdump()
|
||||||
{
|
{
|
||||||
local ret uki
|
local uki
|
||||||
|
|
||||||
KEXEC_ARGS=$(prepare_kexec_args "${KEXEC_ARGS}")
|
KEXEC_ARGS=$(prepare_kexec_args "${KEXEC_ARGS}")
|
||||||
KDUMP_COMMANDLINE=$(prepare_cmdline "${KDUMP_COMMANDLINE}" "${KDUMP_COMMANDLINE_REMOVE}" "${KDUMP_COMMANDLINE_APPEND}")
|
KDUMP_COMMANDLINE=$(prepare_cmdline "${KDUMP_COMMANDLINE}" "${KDUMP_COMMANDLINE_REMOVE}" "${KDUMP_COMMANDLINE_APPEND}")
|
||||||
@ -656,26 +655,12 @@ load_kdump()
|
|||||||
|
|
||||||
ddebug "$KEXEC $KEXEC_ARGS $standard_kexec_args --command-line=$KDUMP_COMMANDLINE --initrd=$TARGET_INITRD $KDUMP_KERNEL"
|
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
|
# shellcheck disable=SC2086
|
||||||
$KEXEC $KEXEC_ARGS $standard_kexec_args \
|
$KEXEC $KEXEC_ARGS $standard_kexec_args \
|
||||||
--command-line="$KDUMP_COMMANDLINE" \
|
--command-line="$KDUMP_COMMANDLINE" \
|
||||||
--initrd="$TARGET_INITRD" "$KDUMP_KERNEL"
|
--initrd="$TARGET_INITRD" "$KDUMP_KERNEL"
|
||||||
|
|
||||||
ret=$?
|
if [[ $? == 0 ]]; then
|
||||||
set +x
|
|
||||||
exec 2>&12 12>&-
|
|
||||||
|
|
||||||
if [[ $ret == 0 ]]; then
|
|
||||||
dinfo "kexec: loaded kdump kernel"
|
dinfo "kexec: loaded kdump kernel"
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
@ -1658,6 +1643,7 @@ reset_crashkernel()
|
|||||||
|
|
||||||
_old_crashkernel=$(get_grub_kernel_boot_parameter "$_kernel" crashkernel)
|
_old_crashkernel=$(get_grub_kernel_boot_parameter "$_kernel" crashkernel)
|
||||||
_old_fadump_val=$(get_grub_kernel_boot_parameter "$_kernel" fadump)
|
_old_fadump_val=$(get_grub_kernel_boot_parameter "$_kernel" fadump)
|
||||||
|
[[ "$_new_fadump_val" == off ]] && _new_fadump_val=""
|
||||||
if [[ $_old_crashkernel != "$_new_crashkernel" || $_old_fadump_val != "$_new_fadump_val" ]]; then
|
if [[ $_old_crashkernel != "$_new_crashkernel" || $_old_fadump_val != "$_new_fadump_val" ]]; then
|
||||||
_update_kernel_cmdline "$_kernel" "$_new_crashkernel" "$_new_dump_mode" "$_new_fadump_val"
|
_update_kernel_cmdline "$_kernel" "$_new_crashkernel" "$_new_dump_mode" "$_new_fadump_val"
|
||||||
if [[ $_reboot != yes ]]; then
|
if [[ $_reboot != yes ]]; then
|
||||||
|
@ -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
|
supports an additional [--fadump=[on|off|nocma]] parameter to toggle FADump
|
||||||
on/off.
|
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
|
Note: The memory requirements for kdump varies heavily depending on the
|
||||||
used hardware and system configuration. Thus the recommended
|
used hardware and system configuration. Thus the recommended
|
||||||
crashkernel might not work for your specific setup. Please test if
|
crashkernel might not work for your specific setup. Please test if
|
||||||
|
@ -1016,12 +1016,7 @@ Debugging Tips
|
|||||||
and the second kernel.
|
and the second kernel.
|
||||||
|
|
||||||
In the first kernel, you can find the historical logs with the journalctl
|
In the first kernel, you can find the historical logs with the journalctl
|
||||||
command and check kdump service debugging information. In addition, the
|
command and check kdump service debugging information.
|
||||||
'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
|
|
||||||
|
|
||||||
If you want to get the debugging information of building kdump initramfs, you
|
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
|
can enable the '--debug' option for the dracut_args in the /etc/kdump.conf, and
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
From 9d9cf8de8b2ad8273861a30476a46f34cd34871a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Baoquan He <bhe@redhat.com>
|
||||||
|
Date: Tue, 14 Nov 2023 23:20:30 +0800
|
||||||
|
Subject: [PATCH] kexec_file: add kexec_file flag to support debug printing
|
||||||
|
Content-type: text/plain
|
||||||
|
|
||||||
|
This add KEXEC_FILE_DEBUG to kexec_file_flags so that it can be passed
|
||||||
|
to kernel when '-d' is added with kexec_file_load interface. With that
|
||||||
|
flag enabled, kernel can enable the debugging message printing.
|
||||||
|
|
||||||
|
Signed-off-by: Baoquan He <bhe@redhat.com>
|
||||||
|
Signed-off-by: Simon Horman <horms@kernel.org>
|
||||||
|
---
|
||||||
|
kexec/kexec-syscall.h | 1 +
|
||||||
|
kexec/kexec.c | 1 +
|
||||||
|
2 files changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
|
||||||
|
index 2559bffb93da..73e52543e1b0 100644
|
||||||
|
--- a/kexec/kexec-syscall.h
|
||||||
|
+++ b/kexec/kexec-syscall.h
|
||||||
|
@@ -119,6 +119,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
|
||||||
|
#define KEXEC_FILE_UNLOAD 0x00000001
|
||||||
|
#define KEXEC_FILE_ON_CRASH 0x00000002
|
||||||
|
#define KEXEC_FILE_NO_INITRAMFS 0x00000004
|
||||||
|
+#define KEXEC_FILE_DEBUG 0x00000008
|
||||||
|
|
||||||
|
/* These values match the ELF architecture values.
|
||||||
|
* Unless there is a good reason that should continue to be the case.
|
||||||
|
diff --git a/kexec/kexec.c b/kexec/kexec.c
|
||||||
|
index 9d0ec46e5657..222f79e3112e 100644
|
||||||
|
--- a/kexec/kexec.c
|
||||||
|
+++ b/kexec/kexec.c
|
||||||
|
@@ -1477,6 +1477,7 @@ int main(int argc, char *argv[])
|
||||||
|
return 0;
|
||||||
|
case OPT_DEBUG:
|
||||||
|
kexec_debug = 1;
|
||||||
|
+ kexec_file_flags |= KEXEC_FILE_DEBUG;
|
||||||
|
break;
|
||||||
|
case OPT_NOIFDOWN:
|
||||||
|
skip_ifdown = 1;
|
||||||
|
--
|
||||||
|
2.41.0
|
||||||
|
|
@ -257,7 +257,7 @@ check_user_configured_target()
|
|||||||
verify_core_collector()
|
verify_core_collector()
|
||||||
{
|
{
|
||||||
local _cmd="${1%% *}"
|
local _cmd="${1%% *}"
|
||||||
local _params="${1#* }"
|
local _params="${1#${_cmd}}"
|
||||||
|
|
||||||
if [[ $_cmd != "makedumpfile" ]]; then
|
if [[ $_cmd != "makedumpfile" ]]; then
|
||||||
if is_raw_dump_target; then
|
if is_raw_dump_target; then
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
Name: kexec-tools
|
Name: kexec-tools
|
||||||
Version: 2.0.27
|
Version: 2.0.27
|
||||||
Release: 8%{?dist}
|
Release: 15%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Summary: The kexec/kdump userspace component
|
Summary: The kexec/kdump userspace component
|
||||||
|
|
||||||
@ -114,6 +114,7 @@ Requires: systemd-udev%{?_isa}
|
|||||||
# Patches 601 onward are generic patches
|
# Patches 601 onward are generic patches
|
||||||
#
|
#
|
||||||
Patch601: kexec-update-manpage-with-explicit-mention-of-clean-.patch
|
Patch601: kexec-update-manpage-with-explicit-mention-of-clean-.patch
|
||||||
|
Patch602: kexec_file-add-kexec_file-flag-to-support-debug-prin.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
kexec-tools provides /sbin/kexec binary that facilitates a new
|
kexec-tools provides /sbin/kexec binary that facilitates a new
|
||||||
@ -130,6 +131,7 @@ tar -z -x -v -f %{SOURCE9}
|
|||||||
tar -z -x -v -f %{SOURCE19}
|
tar -z -x -v -f %{SOURCE19}
|
||||||
|
|
||||||
%patch601 -p1
|
%patch601 -p1
|
||||||
|
%patch602 -p1
|
||||||
|
|
||||||
%ifarch ppc
|
%ifarch ppc
|
||||||
%define archdef ARCH=ppc
|
%define archdef ARCH=ppc
|
||||||
@ -408,6 +410,33 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 7 2024 Tao Liu <ltao@redhat.com> - 2.0.27-15
|
||||||
|
- Support setting up Open vSwitch (Ovs) Bridge network
|
||||||
|
|
||||||
|
* Wed Jul 24 2024 Tao Liu <ltao@redhat.com> - 2.0.27-14
|
||||||
|
- lib: Ensure we don't find bind mounts for device target
|
||||||
|
- dracut: Disable ostree-prepare-root
|
||||||
|
|
||||||
|
* Tue Jul 16 2024 Tao Liu <ltao@redhat.com> - 2.0.27-13
|
||||||
|
- kdump-lib: Drop 'file' dependency in is_uki
|
||||||
|
- kdumpctl.8: Add description to reset-crashkernel --reboot
|
||||||
|
- kdumpctl: Fix misleading message and erratic reboot in reset_crashkernel
|
||||||
|
- kdumpctl: Drop default kexec '-d' option
|
||||||
|
|
||||||
|
* Thu Jun 27 2024 Tao Liu <ltao@redhat.com> - 2.0.27-12
|
||||||
|
- ppc64le: replace kernel cmdline maxcpu=1 with nr_cpus=1
|
||||||
|
|
||||||
|
* Fri May 31 2024 Tao Liu <ltao@redhat.com> - 2.0.27-11
|
||||||
|
- sysconfig: add pcie_ports compat to KDUMP_COMMANDLINE_APPEND on x86_64
|
||||||
|
|
||||||
|
* Tue May 14 2024 Tao Liu <ltao@redhat.com> - 2.0.27-10
|
||||||
|
- mkdumprd: Fix makedumpfile parameter check.
|
||||||
|
- Install the driver of physical device for a SR-IOV virtual device
|
||||||
|
- Try to install PHY and MDIO bus drivers explicitly
|
||||||
|
|
||||||
|
* Wed May 08 2024 Tao Liu <ltao@redhat.com> - 2.0.27-9
|
||||||
|
- kexec_file: add kexec_file flag to support debug printing
|
||||||
|
|
||||||
* Tue Jan 30 2024 Tao Liu <ltao@redhat.com> - 2.0.27-8
|
* Tue Jan 30 2024 Tao Liu <ltao@redhat.com> - 2.0.27-8
|
||||||
- dracut-module-setup: Skip initrd-cleanup and initrd-parse-etc in kdump
|
- dracut-module-setup: Skip initrd-cleanup and initrd-parse-etc in kdump
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user