Unnamed repository
Go to file
Lichen Liu 065d73a90a
kdump-lib-initramfs: Fix performance regression in kdump_get_conf_val
Resolves: RHEL-115464
Upstream: kdump-utils
Conflict: None

commit b43908c20f5a028c60b0096006a26a6e52a01279
Author: Philipp Rudo <prudo@redhat.com>
Date:   Wed Jan 14 15:54:25 2026 +0100

    kdump-lib-initramfs: Fix performance regression in kdump_get_conf_val

    Rewriting kdump_get_conf_val in Bash lead to a massive performance
    regression. On my test system starting the kdump service took

    $ time kdumpctl start
    real    0m13.134s
    user    0m8.828s
    sys     0m7.450s

    which is ~20 times slower compared to kdump-utils-1.0.59-1.fc44 with

    $ time kdumpctl start
    real    0m0.641s
    user    0m0.208s
    sys     0m0.538s

    Looking at the traces shows that this is caused because Bash now has to
    handle the whole kdump.conf, including the extensive comment at the
    start, every time kdump_get_conf_val is called. This is done multiple
    times when starting the kdump service and is often cloaked by other
    functions, e.g. is_ssh_dump_target() or get_save_path().

    To fix the issue remove comments and empty lines in a regex again so
    that the Bash code only has to handle valid config entries. With this
    change alone the performance is almost as good as the original version
    with

    $ time kdumpctl start
    real    0m0.780s
    user    0m0.330s
    sys     0m0.604s

    In the long run it would make sense to also reduce the number of calls
    to kdump_get_conf_val.

    This patch also fixes the issue that subsequent blanks are replaced by a
    single space. Usually this is not an issue but there are corner cases,
    e.g. in printf-like format strings passed as an argument, where the new
    behaviour is undesirable.

    Fixes: d81109c ("kdump-lib-initramfs: rewrite kdump_get_conf_val")
    Signed-off-by: Philipp Rudo <prudo@redhat.com>

Signed-off-by: Lichen Liu <lichliu@redhat.com>
2026-01-21 11:55:16 +08:00
spec Remove unused LUKS volume keys from keyring 2025-10-13 12:28:51 +08:00
tests Merged update from upstream sources 2020-11-20 12:35:49 +00:00
.editorconfig kdump-lib-initramfs.sh: prepare to be a POSIX compatible lib 2021-11-09 21:45:15 +08:00
.gitignore RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
60-fadump.install fadump: add a kernel install hook to clean up fadump initramfs 2022-12-22 14:36:23 +08:00
60-kdump.install Write to /var/lib/kdump if $KDUMP_BOOTDIR not writable 2021-06-23 09:34:40 +08:00
92-crashkernel.install Prefix reset-crashkernel-{for-installed_kernel,after-update} with underscore 2022-10-27 14:47:57 +08:00
98-kexec.rules update 98-kexec rules for crash hotplug 2025-12-08 11:08:33 +08:00
98-kexec.rules.ppc64 update 98-kexec rules for crash hotplug 2025-12-08 11:08:33 +08:00
99-kdump.conf 99-kdump.conf: Omit clevis related dracut modules 2025-04-17 06:25:41 +00:00
crashkernel-howto.txt kdumpctl: deprecate --reboot for reset-creashkernel 2025-09-17 15:39:07 +02:00
dracut-early-kdump-module-setup.sh dracut-early-kdump-module-setup.sh: install xargs and kdump-lib-initramfs.sh 2022-01-06 14:31:33 +08:00
dracut-early-kdump.sh powerpc: update kdumpctl to load kernel signing key for fadump 2023-11-08 01:36:58 +00:00
dracut-fadump-init-fadump.sh fadump-init: clean up mount points properly 2021-07-20 15:43:43 +08:00
dracut-fadump-module-setup.sh fadump: isolate fadump initramfs image within the default one 2021-07-20 15:43:11 +08:00
dracut-kdump-capture.service RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump-emergency.service Merge kdump-error-handler.sh into kdump.sh 2021-11-09 21:45:31 +08:00
dracut-kdump-emergency.target RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump.sh Use all available CPUs to collect dump 2025-12-19 18:34:07 +08:00
dracut-kexec-crypt-setup.sh Wait for LUKS configfs API to be ready 2025-10-13 12:28:51 +08:00
dracut-module-setup.sh Use all available CPUs to collect dump 2025-12-19 18:34:07 +08:00
dracut-monitor_dd_progress RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
early-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
fadump-howto.txt fadump: pass additional parameters for capture kernel 2024-12-09 21:45:00 +08:00
gating.yaml Add gating.yaml to RHEL-9 kexec-tools 2021-06-08 20:03:41 +08:00
gen-kdump-conf.sh Note user-specified crashkernel value will be overwritten by default value 2025-02-24 11:02:47 +08:00
kdump-dep-generator.sh Merged update from upstream sources 2021-01-22 08:12:00 +00:00
kdump-in-cluster-environment.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
kdump-lib-initramfs.sh kdump-lib-initramfs: Fix performance regression in kdump_get_conf_val 2026-01-21 11:55:16 +08:00
kdump-lib.sh kdump-lib-initramfs: rewrite kdump_get_conf_val 2026-01-21 11:54:46 +08:00
kdump-logger.sh Add header comment for POSIX compliant scripts 2021-11-10 10:26:54 +08:00
kdump-migrate-action.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-restart.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-udev-throttler Fix SC2181 issues in kdump-udev-throttler 2025-10-13 12:28:51 +08:00
kdump.conf.5 doc/kdump.conf: correctly align the options 2025-04-08 17:33:14 +02:00
kdump.service Allow kdump.service to access LUKS volume keys 2025-11-07 13:54:50 +08:00
kdump.sysconfig sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.aarch64 sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.i386 sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.ppc64 sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.ppc64le sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.s390x sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdump.sysconfig.x86_64 sysconfig: use initramfs_options to reduce memory usage 2026-01-21 11:45:18 +08:00
kdumpctl Allow "sudo kdumpctl" for LUKS dump target 2025-11-07 13:55:17 +08:00
kdumpctl.8 Limit LUKS support to x86_64 2025-10-13 12:28:51 +08:00
kexec_file-add-kexec_file-flag-to-support-debug-prin.patch kexec_file: add kexec_file flag to support debug printing 2024-05-07 20:26:22 +08:00
kexec-kdump-howto.txt Limit LUKS support to x86_64 2025-10-13 12:28:51 +08:00
kexec-tools.spec Release 2.0.29-14 2025-12-23 09:22:15 +08:00
kexec-update-manpage-with-explicit-mention-of-clean-.patch kexec: update manpage with explicit mention of clean kexec 2023-10-31 13:21:58 +08:00
live-image-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
mkdumprd Support dumping to a LUKS-encrypted target 2025-10-13 12:28:47 +08:00
mkdumprd.8 Merged update from upstream sources 2020-12-23 10:00:07 +00:00
mkfadumprd fadump: use 'zstd' as the default compression method 2022-12-22 14:36:23 +08:00
README RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
sources Release 2.0.29-1 2024-11-06 16:27:38 +13:00
supported-kdump-targets.txt Limit LUKS support to x86_64 2025-10-13 12:28:51 +08:00
zanata-notes.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00

Adding a patch to kexec-tools
=============================
There is a mailing list kexec@lists.fedoraproject.org where all the dicussion
related to fedora kexec-tools happen. All the patches are posted there for
inclusion and committed to kexec-tools after review.

So if you want your patches to be included in fedora kexec-tools package,
post these to kexec@lists.fedoraproject.org.

One can subscribe to list and browse through archives here.

https://admin.fedoraproject.org/mailman/listinfo/kexec