From 3aa4c426cd633b7872d6bc03b5bc359f10e5c66e Mon Sep 17 00:00:00 2001 From: Lichen Liu Date: Wed, 21 Jan 2026 11:29:44 +0800 Subject: [PATCH] sysconfig: use initramfs_options to reduce memory usage Resolves: RHEL-105198 Upstream: kdump-utils Conflict: yes, the gen-kdump-sysconfig.sh was refactored, so we need to manually modify the KDUMP_COMMANDLINE_APPEND= options. Signed-off-by: Lichen Liu --- ...itramfs_options-to-reduce-memory-usa.patch | 80 +++++++++++++++++++ kdump-utils.spec | 1 + 2 files changed, 81 insertions(+) create mode 100644 0016-sysconfig-use-initramfs_options-to-reduce-memory-usa.patch diff --git a/0016-sysconfig-use-initramfs_options-to-reduce-memory-usa.patch b/0016-sysconfig-use-initramfs_options-to-reduce-memory-usa.patch new file mode 100644 index 0000000..05acaf5 --- /dev/null +++ b/0016-sysconfig-use-initramfs_options-to-reduce-memory-usa.patch @@ -0,0 +1,80 @@ +From 1bfd6e6fe97cd8497bbfb1e1ba76929bd87a9553 Mon Sep 17 00:00:00 2001 +From: Lichen Liu +Date: Thu, 4 Dec 2025 13:37:26 +0800 +Subject: [PATCH] sysconfig: use initramfs_options to reduce memory usage + +Starting with Linux 6.18, Fedora 42, RHEL 10.2, and RHEL 9.8, the +kernel supports the `initramfs_options` boot parameter. + +Sets `initramfs_options=size=90%` can increase the size of the tmpfs +used for initramfs decompression from the default 50% to 90% of memory. + +This change greatly reduces memory pressure during decompression, +allowing for a reduction in the memory reserved for the crashkernel. + +Signed-off-by: Lichen Liu +--- + gen-kdump-sysconfig.sh | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/gen-kdump-sysconfig.sh b/gen-kdump-sysconfig.sh +index 53115c1..164fff5 100755 +--- a/gen-kdump-sysconfig.sh ++++ b/gen-kdump-sysconfig.sh +@@ -29,7 +29,7 @@ KDUMP_COMMANDLINE_REMOVE="hugepages hugepagesz slub_debug quiet log_buf_len swio + + # This variable lets us append arguments to the current kdump commandline + # after processed by KDUMP_COMMANDLINE_REMOVE +-KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 reset_devices novmcoredd cma=0 hugetlb_cma=0" ++KDUMP_COMMANDLINE_APPEND="irqpoll maxcpus=1 reset_devices novmcoredd cma=0 hugetlb_cma=0 initramfs_options=size=90%" + + # This variable lets us append arguments to fadump (powerpc) capture kernel, + # further to the parameters passed via the bootloader. +@@ -82,25 +82,25 @@ case "$1" in + aarch64) + update_param KEXEC_ARGS "-s" + update_param KDUMP_COMMANDLINE_APPEND \ +- "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd cma=0 hugetlb_cma=0 kfence.sample_interval=0" ++ "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory udev.children-max=2 panic=10 swiotlb=noforce novmcoredd cma=0 hugetlb_cma=0 kfence.sample_interval=0 initramfs_options=size=90%" + ;; + i386) + update_param KDUMP_COMMANDLINE_APPEND \ +- "irqpoll nr_cpus=1 reset_devices numa=off udev.children-max=2 panic=10 transparent_hugepage=never novmcoredd cma=0 hugetlb_cma=0 kfence.sample_interval=0" ++ "irqpoll nr_cpus=1 reset_devices numa=off udev.children-max=2 panic=10 transparent_hugepage=never novmcoredd cma=0 hugetlb_cma=0 kfence.sample_interval=0 initramfs_options=size=90%" + ;; + ppc64) + update_param KEXEC_ARGS "--dt-no-old-root" + update_param KDUMP_COMMANDLINE_REMOVE \ + "hugepages hugepagesz slub_debug quiet log_buf_len swiotlb hugetlb_cma ignition.firstboot" + update_param KDUMP_COMMANDLINE_APPEND \ +- "irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0 kfence.sample_interval=0" ++ "irqpoll maxcpus=1 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0 kfence.sample_interval=0 initramfs_options=size=90%" + ;; + ppc64le) + update_param KEXEC_ARGS "-s" + update_param KDUMP_COMMANDLINE_REMOVE \ + "hugepages hugepagesz slub_debug quiet log_buf_len swiotlb hugetlb_cma ignition.firstboot" + update_param KDUMP_COMMANDLINE_APPEND \ +- "irqpoll nr_cpus=16 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0 kfence.sample_interval=0" ++ "irqpoll nr_cpus=16 noirqdistrib reset_devices cgroup_disable=memory numa=off udev.children-max=2 ehea.use_mcs=0 panic=10 kvm_cma_resv_ratio=0 transparent_hugepage=never novmcoredd hugetlb_cma=0 kfence.sample_interval=0 initramfs_options=size=90%" + update_param FADUMP_COMMANDLINE_APPEND \ + "nr_cpus=16 numa=off cgroup_disable=memory cma=0 kvm_cma_resv_ratio=0 hugetlb_cma=0 transparent_hugepage=never novmcoredd udev.children-max=2" + ;; +@@ -109,12 +109,12 @@ s390x) + update_param KDUMP_COMMANDLINE_REMOVE \ + "hugepages hugepagesz slub_debug quiet log_buf_len swiotlb vmcp_cma cma hugetlb_cma prot_virt ignition.firstboot zfcp.allow_lun_scan" + update_param KDUMP_COMMANDLINE_APPEND \ +- "nr_cpus=1 cgroup_disable=memory numa=off udev.children-max=2 panic=10 transparent_hugepage=never novmcoredd vmcp_cma=0 cma=0 hugetlb_cma=0 kfence.sample_interval=0" ++ "nr_cpus=1 cgroup_disable=memory numa=off udev.children-max=2 panic=10 transparent_hugepage=never novmcoredd vmcp_cma=0 cma=0 hugetlb_cma=0 kfence.sample_interval=0 initramfs_options=size=90%" + ;; + x86_64) + update_param KEXEC_ARGS "-s" + update_param KDUMP_COMMANDLINE_APPEND \ +- "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 acpi_no_memhotplug transparent_hugepage=never nokaslr hest_disable novmcoredd cma=0 hugetlb_cma=0 pcie_ports=compat kfence.sample_interval=0" ++ "irqpoll nr_cpus=1 reset_devices cgroup_disable=memory mce=off numa=off udev.children-max=2 panic=10 acpi_no_memhotplug transparent_hugepage=never nokaslr hest_disable novmcoredd cma=0 hugetlb_cma=0 pcie_ports=compat kfence.sample_interval=0 initramfs_options=size=90%" + ;; + *) + echo "Warning: Unknown architecture '$1', using default sysconfig template." >&2 +-- +2.52.0 + diff --git a/kdump-utils.spec b/kdump-utils.spec index bb39ccd..56232bf 100644 --- a/kdump-utils.spec +++ b/kdump-utils.spec @@ -23,6 +23,7 @@ Patch12: 0012-powerpc-consider-CPU-count-while-calculating-crashke.patch Patch13: 0013-powerpc-Set-nr_cpus-16-for-kdump-kernel.patch Patch14: 0014-kexec-kdump-howto.txt-update-paragraphs-related-to-d.patch Patch15: 0015-kdump-lib-initramfs-Fix-performance-regression-in-kd.patch +Patch16: 0016-sysconfig-use-initramfs_options-to-reduce-memory-usa.patch %ifarch ppc64 ppc64le