[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6d71e063-8e18-dd08-ac40-36b41ccfcfdb@xen0n.name>
Date: Wed, 22 Feb 2023 17:05:31 +0800
From: WANG Xuerui <kernel@...0n.name>
To: Youling Tang <tangyouling@...ngson.cn>,
Huacai Chen <chenhuacai@...nel.org>
Cc: loongarch@...ts.linux.dev, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 1/2] LoongArch: kdump: Add the same binary implementation
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@...ngson.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/
Powered by blists - more mailing lists