On Thu, Dec 16, 2021 at 3:10 PM Coiby Xu <coxu(a)redhat.com> wrote:
On Thu, Dec 16, 2021 at 11:15:32AM +0800, Pingfan Liu wrote:
>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
><dyoung(a)redhat.com>
Only two small issues.
>
>Signed-off-by: Pingfan Liu <piliu(a)redhat.com>
>---
> dracut-module-setup.sh | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
>diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
>index 1ea0d95..2c7b728 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
^^^^^
"$file"
otherwise shellcheck would complaint about "SC2086: Double quote to prevent
globbing and word splitting."
>+}
>+
> 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
There is no need to quote string constants.
Can we shrink 2 [[ ]] into 1 like:
if [[ "$arch" = "ppc64le" || "$arch" = "ppc64"
]]; then
Thanks,
Tao Liu
>+ remove_cpu_online_rule
>+ fi
>+
> if is_ssh_dump_target; then
> kdump_install_random_seed
> fi
>--
>2.31.1
>
--
Best regards,
Coiby