• Sourabh Jain's avatar
    crash: add a new kexec flag for hotplug support · 79365026
    Sourabh Jain authored
    Commit a72bbec7 ("crash: hotplug support for kexec_load()")
    introduced a new kexec flag, `KEXEC_UPDATE_ELFCOREHDR`. Kexec tool uses
    this flag to indicate to the kernel that it is safe to modify the
    elfcorehdr of the kdump image loaded using the kexec_load system call.
    
    However, it is possible that architectures may need to update kexec
    segments other then elfcorehdr. For example, FDT (Flatten Device Tree)
    on PowerPC. Introducing a new kexec flag for every new kexec segment
    may not be a good solution. Hence, a generic kexec flag bit,
    `KEXEC_CRASH_HOTPLUG_SUPPORT`, is introduced to share the CPU/Memory
    hotplug support intent between the kexec tool and the kernel for the
    kexec_load system call.
    
    Now we have two kexec flags that enables crash hotplug support for
    kexec_load system call. First is KEXEC_UPDATE_ELFCOREHDR (only used in
    x86), and second is KEXEC_CRASH_HOTPLUG_SUPPORT (for all architectures).
    
    To simplify the process of finding and reporting the crash hotplug
    support the following changes are introduced.
    
    1. Define arch specific function to process the kexec flags and
       determine crash hotplug support
    
    2. Rename the @update_elfcorehdr member of struct kimage to
       @hotplug_support and populate it for both kexec_load and
       kexec_file_load syscalls, because architecture can update more than
       one kexec segment
    
    3. Let generic function crash_check_hotplug_support report hotplug
       support for loaded kdump image based on value of @hotplug_support
    
    To bring the x86 crash hotplug support in line with the above points,
    the following changes have been made:
    
    - Introduce the arch_crash_hotplug_support function to process kexec
      flags and determine crash hotplug support
    
    - Remove the arch_crash_hotplug_[cpu|memory]_support functions
    Signed-off-by: default avatarSourabh Jain <sourabhjain@linux.ibm.com>
    Acked-by: default avatarBaoquan He <bhe@redhat.com>
    Acked-by: default avatarHari Bathini <hbathini@linux.ibm.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://msgid.link/20240326055413.186534-3-sourabhjain@linux.ibm.com
    79365026
crash.c 12.2 KB