Messages in this thread | | | Subject | Re: [PATCH v4 0/3] LoongArch: Add kexec/kdump support | From | Youling Tang <> | Date | Fri, 23 Sep 2022 17:16:14 +0800 |
| |
On 09/23/2022 03:44 PM, Youling Tang wrote: > This patch series to support kexec/kdump (only 64bit). > > Kexec is a system call that enables you to load and boot into another kernel > from the currently running kernel. This is useful for kernel developers or > other people who need to reboot very quickly without waiting for the whole > BIOS boot process to finish. > > Kdump uses kexec to quickly boot to a dump-capture kernel whenever a > dump of the system kernel's memory needs to be taken (for example, when > the system panics). The system kernel's memory image is preserved across > the reboot and is accessible to the dump-capture kernel. > > For details, see Documentation/admin-guide/kdump/kdump.rst. > > User tools kexec-tools see link [1]. > > TODO: > Currently kdump does not support the same binary image, the production kernel > and the capture kernel will be generated with different configurations. I will > support kernel relocation support in the near future. Then will go to implement > the same binary support based on kernel relocation support. > > [1] Link: https://github.com/tangyouling/kexec-tools > > Changes in v4: > After applying the following series of patches [1], the following > modifications need to be made: > - Adjust the number of parameters and the content of the parameters passed. > - Removed build and processing of fdt. > - Add handling of command line segments. > - Use the command line argument "elfcorehdr=" instead of the "linux,elfcorehdr" > member in fdt. > - Use the command line argument "mem=" instead of the "linux, usable-memory-range" > member in fdt. > - Use the command line argument "initrd=" instead of the "linux,initrd-start" and > "linux,initrd-end" members of fdt.
For the command line "initrd=start,size" method: We need to move the reserve_initrd_mem call after parse_early_param to make sure we can get the correct start and size.
Youling.
> - Removed handling of "linux,elfcorehdr" and "linux, usable-memory-range". > - Add handling of "elfcorehdr=". > - Modify the handling of "mem=". > - Add implementation of reserve_oldmem_region. > - Reimplemented kexec-tools (note that kexec-tools needs to be updated). > > Link [1]: https://lore.kernel.org/loongarch/20220920183554.3870247-1-ardb@kernel.org/T/#md02ad4a1510586b2df177cbce4422434eff2d457 > [PATCH v2 0/8] efi: disentangle the generic EFI stub from FDT > > Changes in v3: > - Adjust the PE header (note that kexec-tools needs to be updated). > - Add ibar in kexec_reboot(). > - boot_flag is replaced by efi_boot. > - Adjust do_kexec parameter passing order. > - Adjust the order of static variables to be consistent with do_kexec. > - Remove a-series register save. > - Some comments and register usage modification. > - Add the opening and closing of the cpu core state. > - Add a call to cpu_device_up to turn it on when the cpu core state is offline. > > Changes in v2: > - Add ibar. > - Access via IOCSR. > - Remove the settings of the tp, sp registers. > - Remove the crash.c file and merge the relevant code into machine_kexec.c. > - Adjust the use of CONFIG_SMP macro to avoid build errors under !SMP > configuration. > - Change the default value of PHYSICAL_START of the capture kernel to > 0x90000000a0000000. > > Youling Tang (3): > LoongArch: Add kexec support > LoongArch: Add kdump support > LoongArch: Enable CONFIG_KEXEC > > arch/loongarch/Kconfig | 33 +++ > arch/loongarch/Makefile | 4 + > arch/loongarch/configs/loongson3_defconfig | 1 + > arch/loongarch/include/asm/kexec.h | 60 ++++ > arch/loongarch/kernel/Makefile | 3 + > arch/loongarch/kernel/crash_dump.c | 19 ++ > arch/loongarch/kernel/head.S | 6 +- > arch/loongarch/kernel/machine_kexec.c | 309 +++++++++++++++++++++ > arch/loongarch/kernel/mem.c | 1 + > arch/loongarch/kernel/relocate_kernel.S | 112 ++++++++ > arch/loongarch/kernel/setup.c | 123 +++++++- > arch/loongarch/kernel/traps.c | 4 + > 12 files changed, 664 insertions(+), 11 deletions(-) > create mode 100644 arch/loongarch/include/asm/kexec.h > create mode 100644 arch/loongarch/kernel/crash_dump.c > create mode 100644 arch/loongarch/kernel/machine_kexec.c > create mode 100644 arch/loongarch/kernel/relocate_kernel.S >
| |