From 163c02970e4ddcf238b2ac09eadf380744e01ba2 Mon Sep 17 00:00:00 2001 From: Pingfan Liu Date: Mon, 20 Dec 2021 09:29:02 +0800 Subject: [PATCH] ppc64/ppc64le: drop cpu online rule in 40-redhat.rules in kdump initramfs Onlining secondary cpus breaks kdump completely on KVM on Power hosts Though we use maxcpus=1 by default but 40-redhat.rules will bring up all possible cpus by default. Thus before we get the kernel fix and the systemd rule fix let's remove the cpu rule in 40-redhat.rules for ppc64/ppc64le kdump initramfs. This is back ported from RHEL, and original credit goes to Dave Young Signed-off-by: Pingfan Liu Acked-by: Tao Liu --- dracut-module-setup.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 1ea0d95..c319fc2 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -1010,11 +1010,29 @@ kdump_install_systemd_conf() { echo "ForwardToConsole=yes" >> "${initdir}/etc/systemd/journald.conf.d/kdump.conf" } +remove_cpu_online_rule() { + local file=${initdir}/usr/lib/udev/rules.d/40-redhat.rules + + sed -i '/SUBSYSTEM=="cpu"/d' "$file" +} + install() { + local arch + kdump_module_init kdump_install_conf remove_sysctl_conf + # Onlining secondary cpus breaks kdump completely on KVM on Power hosts + # Though we use maxcpus=1 by default but 40-redhat.rules will bring up all + # possible cpus by default. (rhbz1270174 rhbz1266322) + # Thus before we get the kernel fix and the systemd rule fix let's remove + # the cpu online rule in kdump initramfs. + arch=$(uname -m) + if [[ "$arch" = "ppc64le" ]] || [[ "$arch" = "ppc64" ]]; then + remove_cpu_online_rule + fi + if is_ssh_dump_target; then kdump_install_random_seed fi