lkml.org 
[lkml]   [2023]   [Feb]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH 1/2] LoongArch: kdump: Add the same binary implementation
From
On 2023/2/22 14:53, Youling Tang wrote:
> This feature depends on the relocation function, so the relocation configuration
> CONFIG_RELOCATABLE will be enabled.

In general try to describe things briefly: "This depends on the kernel
being relocatable" would be enough in this case.

>
> Add the same set of binary implementations for kdump, and then no longer need to
> compile two kernels (the production kernel and the capture kernel share the same
> binary).

Sorry but what do you mean by "same set of binary implementation",
where's the "first set of binary implementation"?

Judging from the patch content, I guess it's kinda wrong translation,
and what you actually mean is something like "enable using the same
image for crashkernel"?

>
> CONFIG_CRASH_DUMP is enabled by default (CONFIG_RELOCATABLE is also enabled).

No it's not: you didn't add "default y" anywhere. What you actually did
is to enable it *in the defconfig*. And the latter part about
CONFIG_RELOCATABLE shouldn't be necessary, it's implementation detail
after all, and the users likely don't have to be aware of it.

Better reword a little bit, like "Also enable CONFIG_CRASH_DUMP in
loongson3_defconfig".

>
> Signed-off-by: Youling Tang <tangyouling@loongson.cn>
> ---
> arch/loongarch/Kconfig | 12 +-----------
> arch/loongarch/Makefile | 4 ----
> arch/loongarch/configs/loongson3_defconfig | 1 +
> arch/loongarch/include/asm/addrspace.h | 2 ++
> arch/loongarch/kernel/head.S | 2 +-
> 5 files changed, 5 insertions(+), 16 deletions(-)
>
> diff --git a/arch/loongarch/Kconfig b/arch/loongarch/Kconfig
> index ab4c2ab146ab..84f220273296 100644
> --- a/arch/loongarch/Kconfig
> +++ b/arch/loongarch/Kconfig
> @@ -502,6 +502,7 @@ config KEXEC
>
> config CRASH_DUMP
> bool "Build kdump crash kernel"
> + select RELOCATABLE
> help
> Generate crash dump after being started by kexec. This should
> be normally only set in special crash dump kernels which are
> @@ -511,17 +512,6 @@ config CRASH_DUMP
>
> For more details see Documentation/admin-guide/kdump/kdump.rst
>
> -config PHYSICAL_START
> - hex "Physical address where the kernel is loaded"
> - default "0x90000000a0000000"
> - depends on CRASH_DUMP
> - help
> - This gives the XKPRANGE address where the kernel is loaded.
> - If you plan to use kernel for capturing the crash dump change
> - this value to start of the reserved region (the "X" value as
> - specified in the "crashkernel=YM@XM" command line boot parameter
> - passed to the panic-ed kernel).
> -
> config RELOCATABLE
> bool "Relocatable kernel"
> help
> diff --git a/arch/loongarch/Makefile b/arch/loongarch/Makefile
> index 2aba6ff30436..8304fed7aa42 100644
> --- a/arch/loongarch/Makefile
> +++ b/arch/loongarch/Makefile
> @@ -79,11 +79,7 @@ endif
> cflags-y += -ffreestanding
> cflags-y += $(call cc-option, -mno-check-zero-division)
>
> -ifndef CONFIG_PHYSICAL_START
> load-y = 0x9000000000200000
> -else
> -load-y = $(CONFIG_PHYSICAL_START)
> -endif
> bootvars-y = VMLINUX_LOAD_ADDRESS=$(load-y)

Both load-y and VMLINUX_LOAD_ADDRESS are kinda LoongArch-ism (stemming
from similar usage in arch/mips apparently), so why not just drop load-y
and fold the constant into the bootvars-y definition? So we have one
piece of "special" definition instead of two.

>
> drivers-$(CONFIG_PCI) += arch/loongarch/pci/
> diff --git a/arch/loongarch/configs/loongson3_defconfig b/arch/loongarch/configs/loongson3_defconfig
> index cb52774c80e8..7885f6e5de93 100644
> --- a/arch/loongarch/configs/loongson3_defconfig
> +++ b/arch/loongarch/configs/loongson3_defconfig
> @@ -48,6 +48,7 @@ CONFIG_HOTPLUG_CPU=y
> CONFIG_NR_CPUS=64
> CONFIG_NUMA=y
> CONFIG_KEXEC=y
> +CONFIG_CRASH_DUMP=y
> CONFIG_SUSPEND=y
> CONFIG_HIBERNATION=y
> CONFIG_ACPI=y
> diff --git a/arch/loongarch/include/asm/addrspace.h b/arch/loongarch/include/asm/addrspace.h
> index d342935e5a72..4edcb3c21cf5 100644
> --- a/arch/loongarch/include/asm/addrspace.h
> +++ b/arch/loongarch/include/asm/addrspace.h
> @@ -125,4 +125,6 @@ extern unsigned long vm_map_base;
> #define ISA_IOSIZE SZ_16K
> #define IO_SPACE_LIMIT (PCI_IOSIZE - 1)
>
> +#define PHYS_LINK_ADDR PHYSADDR(VMLINUX_LOAD_ADDRESS)
> +
> #endif /* _ASM_ADDRSPACE_H */
> diff --git a/arch/loongarch/kernel/head.S b/arch/loongarch/kernel/head.S
> index b12f459ad73a..57962ff08f6d 100644
> --- a/arch/loongarch/kernel/head.S
> +++ b/arch/loongarch/kernel/head.S
> @@ -24,7 +24,7 @@ _head:
> .org 0x8
> .dword kernel_entry /* Kernel entry point */
> .dword _end - _text /* Kernel image effective size */
> - .quad 0 /* Kernel image load offset from start of RAM */
> + .quad PHYS_LINK_ADDR /* Kernel image load offset from start of RAM */
> .org 0x38 /* 0x20 ~ 0x37 reserved */
> .long LINUX_PE_MAGIC
> .long pe_header - _head /* Offset to the PE header */

--
WANG "xen0n" Xuerui

Linux/LoongArch mailing list: https://lore.kernel.org/loongarch/

\
 
 \ /
  Last update: 2023-03-27 00:32    [W:0.275 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site