Bug 1446698

Summary: Optimize kdump service start time in case of no initramfs rebuild
Product: Red Hat Enterprise Linux 7 Reporter: Xunlei Pang <xlpang>
Component: kexec-toolsAssignee: kdump team <kdump-team-bugs>
Status: CLOSED ERRATA QA Contact: Emma Wu <xiawu>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.4CC: dyoung, glennduffy, kdump-team-bugs, lilu, linl, piliu, ruyang, xiawu, xiliang, xlpang, ymao, ziyang
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
Whiteboard:
Fixed In Version: kexec-tools-2.0.14-10.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-01 09:33:50 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Xunlei Pang 2017-04-28 15:53:18 UTC
Description of problem:
kdump service takes a few seconds to start even no need to rebuild initramfs, which is a little longer compared to other systemd services, it may affects the system boot time a little, we better optimize it as possible as we can.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:
kdump service takes a few seconds to start even no need to rebuild initramfs.
The main root cause of this is the use of "lsinitrd".

Expected results:
kdump service starts every boot quickly.

Additional info:

Comment 2 Ziyue Yang 2017-05-03 02:10:09 UTC
After some tests I found that the list_modules and list_files function in lsinitrd would cause 13%~15% overhead on kdumpctl start with or without rebuilding initramfs.

The point is that, the scripts calling lsinitrd may not need all the information currently given by it. For example, the image built by dracut will not change if list_modules and list_files calls are removed, according to my experiments.

Maybe we need make lsinitrd more customizable, in which condition we can selectively show image information that we want only.

Comment 3 Ziyue Yang 2017-05-03 03:17:09 UTC
If argument -m(--mod) is not given, the $modules variable controlled by would be set to 0, which leads to list_modules and list_files to be executed, which caused serious overhead:

if [ "$modules" -eq 1 ]; then
    list_modules
    echo "========================================================================"
else
    echo -n "Arguments: "
    $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
        $(dracutlibdirs build-parameter.txt) 2>/dev/null
    echo
    list_modules
    list_files

Comment 6 Xunlei Pang 2017-05-11 02:39:10 UTC
There is a bug in the last patch that will cause some regression, I will append a fix later.

Comment 9 glennduffy 2017-05-30 19:07:45 UTC
I am running into this issue too. Can someone provide instructions on how to configure kdump to mitigate this?

Comment 10 Xunlei Pang 2017-05-31 01:54:49 UTC
(In reply to glennduffy from comment #9)
> I am running into this issue too. Can someone provide instructions on how to
> configure kdump to mitigate this?

It's been solved in the latest version(since kexec-tools-2.0.14-10.el7), please update it.

Comment 12 errata-xmlrpc 2017-08-01 09:33:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:2300