zstd has better compression ratio and time consumption balance than
zlib/lzo/snappy. When no customized compression method is specified in
kdump.conf, we will use zstd as the default compression method for
initrd.
Signed-off-by: Tao Liu <ltao(a)redhat.com>
---
kdump-lib.sh | 7 +++++++
mkdumprd | 4 ++++
mkfadumprd | 4 ++++
3 files changed, 15 insertions(+)
diff --git a/kdump-lib.sh b/kdump-lib.sh
index e435498..82c2616 100755
--- a/kdump-lib.sh
+++ b/kdump-lib.sh
@@ -443,6 +443,13 @@ is_wdt_active()
return 1
}
+have_compression_in_dracut_args()
+{
+ grep -q "^dracut_args .*\-\-
+ \(gzip\|bzip2\|lzma\|xz\|lzo\|lz4\|zstd\|compress\|no-compress\)
+ \([[:space:]]\|$\)" /etc/kdump.conf
+}
+
# If "dracut_args" contains "--mount" information, use it
# directly without any check(users are expected to ensure
# its correctness).
diff --git a/mkdumprd b/mkdumprd
index d87d588..9c26ecc 100644
--- a/mkdumprd
+++ b/mkdumprd
@@ -431,6 +431,10 @@ done <<< "$(kdump_read_conf)"
handle_default_dump_target
+if ! have_compression_in_dracut_args; then
+ add_dracut_arg "--compress" "zstd"
+fi
+
if [[ -n $extra_modules ]]; then
add_dracut_arg "--add-drivers" "$extra_modules"
fi
diff --git a/mkfadumprd b/mkfadumprd
index b890f83..16fdacc 100644
--- a/mkfadumprd
+++ b/mkfadumprd
@@ -62,6 +62,10 @@ if is_squash_available; then
_dracut_isolate_args+=(--add squash)
fi
+if ! have_compression_in_dracut_args; then
+ _dracut_isolate_args+=(--compress zstd)
+fi
+
if ! dracut --force --quiet "${_dracut_isolate_args[@]}" "$@"
"$TARGET_INITRD"; then
perror_exit "mkfadumprd: failed to setup '$TARGET_INITRD' with dump capture
capability"
fi
--
2.33.1