diff --git a/dracut/99kdumpbase/kdump.sh b/dracut/99kdumpbase/kdump.sh index 7c4c71ce..5155453c 100755 --- a/dracut/99kdumpbase/kdump.sh +++ b/dracut/99kdumpbase/kdump.sh @@ -22,8 +22,7 @@ KDUMP_LOG_DEST="" KDUMP_LOG_OP="" KDUMP_TEST_ID="" KDUMP_TEST_STATUS="" -CORE_COLLECTOR="" -DEFAULT_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" +CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" DMESG_COLLECTOR="/sbin/vmcore-dmesg" FAILURE_ACTION="systemctl reboot -f" DATEDIR=$(date +%Y-%m-%d-%T) @@ -108,12 +107,26 @@ get_kdump_confs() { esac done < "$KDUMP_CONF_PARSED" - if [ -z "$CORE_COLLECTOR" ]; then - CORE_COLLECTOR="$DEFAULT_CORE_COLLECTOR" - if is_ssh_dump_target || is_raw_dump_target; then - CORE_COLLECTOR="$CORE_COLLECTOR -F" - fi - fi + case $CORE_COLLECTOR in + *makedumpfile*) + # Ensure no -F in makedumpfile by default. + CORE_COLLECTOR=$(echo "$CORE_COLLECTOR" | sed -e "s/-F//g") + if is_ssh_dump_target || is_raw_dump_target; then + CORE_COLLECTOR="$CORE_COLLECTOR -F" + fi + THREADS=$(nproc) + if [ "$THREADS" -gt 1 ]; then + case "$CORE_COLLECTOR" in + *-F* | *-E*) ;; + + *) + CORE_COLLECTOR="$CORE_COLLECTOR --num-threads=$THREADS" + ;; + esac + fi + ;; + esac + } # store the kexec kernel log to a file. @@ -145,17 +158,6 @@ dump_fs() { fi fi - # Remove -F in makedumpfile case. We don't want a flat format dump here. - case $CORE_COLLECTOR in - *makedumpfile*) - CORE_COLLECTOR=$(echo "$CORE_COLLECTOR" | sed -e "s/-F//g") - THREADS=$(nproc) - if [ "$THREADS" -gt 1 ]; then - CORE_COLLECTOR="$CORE_COLLECTOR --num-threads=$THREADS" - fi - ;; - esac - if [ -z "$KDUMP_TEST_ID" ]; then _dump_fs_path=$(echo "$1/$KDUMP_PATH/$HOST_IP-$DATEDIR/" | tr -s /) else @@ -384,13 +386,6 @@ dump_raw() { /kdumpscripts/monitor_dd_progress.sh $_src_size_mb & fi - if echo "$CORE_COLLECTOR" | grep -q makedumpfile; then - THREADS=$(nproc) - if [ "$THREADS" -gt 1 ]; then - CORE_COLLECTOR="$CORE_COLLECTOR --num-threads=$THREADS" - fi - fi - dinfo "saving vmcore" $CORE_COLLECTOR /proc/vmcore | dd of="$1" bs=$DD_BLKSIZE >> /tmp/dd_progress_file 2>&1 || return 1 sync