]> www.infradead.org Git - users/dwmw2/linux.git/commit
crash: add a new kexec flag for hotplug support
authorSourabh Jain <sourabhjain@linux.ibm.com>
Tue, 26 Mar 2024 05:54:09 +0000 (11:24 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 23 Apr 2024 04:59:01 +0000 (14:59 +1000)
commit79365026f86948b52c3cb7bf099dded92c559b4c
treeb3e3a57619aec7e8374265cd4cd4d43b5fa51db2
parent118005713e35a1893c6ee47ab2926cca277737de
crash: add a new kexec flag for hotplug support

Commit a72bbec70da2 ("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: Sourabh Jain <sourabhjain@linux.ibm.com>
Acked-by: Baoquan He <bhe@redhat.com>
Acked-by: Hari Bathini <hbathini@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240326055413.186534-3-sourabhjain@linux.ibm.com
arch/x86/include/asm/kexec.h
arch/x86/kernel/crash.c
drivers/base/cpu.c
drivers/base/memory.c
include/linux/crash_core.h
include/linux/kexec.h
include/uapi/linux/kexec.h
kernel/crash_core.c
kernel/kexec.c
kernel/kexec_file.c