From d5cf9132606a19d8135d7981edbb144bc01ae4e1 Mon Sep 17 00:00:00 2001 From: Coiby Xu Date: Jan 06 2022 03:55:25 +0000 Subject: add helper functions to get dump mode Resolves: bz1895258 Upstream: Fedora Conflict: None commit 3d2079c31cd80741ea6d44eb7f13d7f08be74a94 Author: Coiby Xu Date: Wed Dec 1 16:57:15 2021 +0800 add helper functions to get dump mode Add a helper function to get dump mode. The dump mode would be - fadump if fadump=on or fadump=nocma - kdump if fadump=off or empty fadump Otherwise return 1. Also add another helper function to return a kernel's dump mode. Reviewed-by: Pingfan Liu Reviewed-by: Philipp Rudo Signed-off-by: Coiby Xu Signed-off-by: Coiby Xu --- diff --git a/kdumpctl b/kdumpctl index 85efaa1..89abad2 100755 --- a/kdumpctl +++ b/kdumpctl @@ -1317,6 +1317,40 @@ get_grub_kernel_boot_parameter() grubby --info="$_kernel_path" | sed -En -e "/^args=.*$/{s/^.*(\s|\")${_para}=(\S*).*\"$/\2/p;q}" } +# get dump mode by fadump value +# return +# - fadump, if fadump=on or fadump=nocma +# - kdump, if fadump=off or empty fadump, return kdump +# - error if otherwise +get_dump_mode_by_fadump_val() +{ + local _fadump_val=$1 + + if [[ -z $_fadump_val ]] || [[ $_fadump_val == off ]]; then + echo -n kdump + elif [[ $_fadump_val == on ]] || [[ $_fadump_val == nocma ]]; then + echo -n fadump + else + derror "invalid fadump=$_fadump_val" + return 1 + fi +} + +# get dump mode of a specific kernel +# based on its fadump kernel cmdline parameter +get_dump_mode_by_kernel() +{ + local _kernel_path=$1 _fadump_val _dump_mode + + _fadump_val=$(get_grub_kernel_boot_parameter "$_kernel_path" fadump) + if _dump_mode=$(get_dump_mode_by_fadump_val "$_fadump_val"); then + echo -n "$_dump_mode" + else + derror "failed to get dump mode for kernel $_kernel_path" + exit + fi +} + reset_crashkernel() { local kernel=$1 entry crashkernel_default