2589c4 reset kernel crashkernel for the special case where the kernel is updated right after kexec-tools

2 files Authored by Coiby Xu 2 years ago, Committed by liutgnu 2 years ago,
    reset kernel crashkernel for the special case where the kernel is updated right after kexec-tools
    
    Resolves: bz1895258
    Upstream: Fedora
    Conflict: None
    
    commit 5e8c751c39a5ec9d10009cba1c2bd554a5763b90
    Author: Coiby Xu <coxu@redhat.com>
    Date:   Thu Dec 2 17:19:50 2021 +0800
    
        reset kernel crashkernel for the special case where the kernel is updated right after kexec-tools
    
        When kexec-tools updates the default crashkernel value, it will try to
        reset the existing installed kernels including the currently running
        kernel. So the running kernel could have different kernel cmdline
        parameters from /proc/cmdline. When installing a kernel after updating
        kexec-tools, /usr/lib/kernel/install.d/20-grub.install would be called
        by kernel-install [1] which would use /proc/cmdline to set up new kernel's
        cmdline. To address this special case, reset the new kernel's crashkernel
        and fadump value to the value that would be used by running kernel after
        rebooting by the installation hook. One side effect of this commit is it
        would reset the installed kernel's crashkernel even currently running kernel
        don't use the default crashkernel value after rebooting. But I think this
        side effect is a benefit for the user.
    
        The implementation depends on kernel-install which run the scripts in
        /usr/lib/kernel/install.d passing the following arguments,
    
          add KERNEL-VERSION $BOOT/MACHINE-ID/KERNEL-VERSION/ KERNEL-IMAGE [INITRD-FILE ...]
    
        An concrete example is given as follows,
          add 5.11.12-300.fc34.x86_64 /boot/e986846f63134c7295458cf36300ba5b/5.11.12-300.fc34.x86_64 /lib/modules/5.11.12-300.fc34.x86_64/vmlinuz
    
        kernel-install could be started by the kernel package's RPM scriplet [2].
        As mentioned in previous commit "try to reset kernel crashkernel when
        kexec-tools updates the default crashkernel value", kdumpctl has difficulty
        running in RPM scriptlet fore CoreOS. But rpm-ostree ignores all kernel hooks,
        there is no need to disable the kernel hook for CoreOS/Atomic/Silverblue. But a
        collaboration between rpm-ostree and kexec-tools is needed [3] to take care
        of this special case.
    
        Note the crashkernel.default support is dropped.
    
        [1] https://www.freedesktop.org/software/systemd/man/kernel-install.html
        [2] https://src.fedoraproject.org/rpms/kernel/blob/rawhide/f/kernel.spec#_2680
        [3] https://github.com/coreos/rpm-ostree/issues/2894
    
        Reviewed-by: Pingfan Liu <piliu@redhat.com>
        Reviewed-by: Philipp Rudo <prudo@redhat.com>
        Signed-off-by: Coiby Xu <coxu@redhat.com>
    
    Signed-off-by: Coiby Xu <coxu@redhat.com>
    
        
file modified
+1 -134
file modified
+31 -0