[PATCH] LoongArch: kexec_file: print out debugging message if required

Qiang Ma posted 1 patch 3 months, 2 weeks ago
arch/loongarch/kernel/machine_kexec.c | 22 ----------------------
1 file changed, 22 deletions(-)
[PATCH] LoongArch: kexec_file: print out debugging message if required
Posted by Qiang Ma 3 months, 2 weeks ago
When specifying '-d' for kexec_file_load interface, loaded locations
of kernel/initrd/cmdline etc can be printed out to help debug.

Commit eb7622d908a0 ("kexec_file, riscv: print out debugging message
if required") fixes the same issue on RISC-V.

So, remove kexec_image_info() because the content has been printed
out in generic code.

And on Loongson-3A5000, the printed messages look like below:

[  288.667939] kexec_file: kernel: 00000000d9aad283 kernel_size: 0x2e77f30
[  288.668414] kexec_file(EFI): No LoongArch PE image header.
[  288.703104] kexec_file: Loaded initrd at 0x80000000 bufsz=0x1637cd0 memsz=0x1638000
[  288.703674] kexec_file(ELF): Loaded kernel at 0x9c20000 bufsz=0x27f1800 memsz=0x2950000
[  288.704092] kexec_file: nr_segments = 2
[  288.704277] kexec_file: segment[0]: buf=0x00000000cc3e6c33 bufsz=0x27f1800 mem=0x9c20000 memsz=0x2950000
[  288.741213] kexec_file: segment[1]: buf=0x00000000bb75a541 bufsz=0x1637cd0 mem=0x80000000 memsz=0x1638000
[  288.757182] kexec_file: kexec_file_load: type:0, start:0xb15d000 head:0x18db60002 flags:0x8

Signed-off-by: Qiang Ma <maqianga@uniontech.com>
---
 arch/loongarch/kernel/machine_kexec.c | 22 ----------------------
 1 file changed, 22 deletions(-)

diff --git a/arch/loongarch/kernel/machine_kexec.c b/arch/loongarch/kernel/machine_kexec.c
index e4b2bbc47e62..2d64b7c81e5e 100644
--- a/arch/loongarch/kernel/machine_kexec.c
+++ b/arch/loongarch/kernel/machine_kexec.c
@@ -39,34 +39,12 @@ static unsigned long systable_ptr;
 static unsigned long start_addr;
 static unsigned long first_ind_entry;
 
-static void kexec_image_info(const struct kimage *kimage)
-{
-	unsigned long i;
-
-	pr_debug("kexec kimage info:\n");
-	pr_debug("\ttype:        %d\n", kimage->type);
-	pr_debug("\tstart:       %lx\n", kimage->start);
-	pr_debug("\thead:        %lx\n", kimage->head);
-	pr_debug("\tnr_segments: %lu\n", kimage->nr_segments);
-
-	for (i = 0; i < kimage->nr_segments; i++) {
-		pr_debug("\t    segment[%lu]: %016lx - %016lx", i,
-			kimage->segment[i].mem,
-			kimage->segment[i].mem + kimage->segment[i].memsz);
-		pr_debug("\t\t0x%lx bytes, %lu pages\n",
-			(unsigned long)kimage->segment[i].memsz,
-			(unsigned long)kimage->segment[i].memsz /  PAGE_SIZE);
-	}
-}
-
 int machine_kexec_prepare(struct kimage *kimage)
 {
 	int i;
 	char *bootloader = "kexec";
 	void *cmdline_ptr = (void *)KEXEC_CMDLINE_ADDR;
 
-	kexec_image_info(kimage);
-
 	kimage->arch.efi_boot = fw_arg0;
 	kimage->arch.systable_ptr = fw_arg2;
 
-- 
2.20.1
Re: [PATCH] LoongArch: kexec_file: print out debugging message if required
Posted by Huacai Chen 2 months, 4 weeks ago
Applied, thanks.

Huacai

On Tue, Oct 21, 2025 at 5:12 PM Qiang Ma <maqianga@uniontech.com> wrote:
>
> When specifying '-d' for kexec_file_load interface, loaded locations
> of kernel/initrd/cmdline etc can be printed out to help debug.
>
> Commit eb7622d908a0 ("kexec_file, riscv: print out debugging message
> if required") fixes the same issue on RISC-V.
>
> So, remove kexec_image_info() because the content has been printed
> out in generic code.
>
> And on Loongson-3A5000, the printed messages look like below:
>
> [  288.667939] kexec_file: kernel: 00000000d9aad283 kernel_size: 0x2e77f30
> [  288.668414] kexec_file(EFI): No LoongArch PE image header.
> [  288.703104] kexec_file: Loaded initrd at 0x80000000 bufsz=0x1637cd0 memsz=0x1638000
> [  288.703674] kexec_file(ELF): Loaded kernel at 0x9c20000 bufsz=0x27f1800 memsz=0x2950000
> [  288.704092] kexec_file: nr_segments = 2
> [  288.704277] kexec_file: segment[0]: buf=0x00000000cc3e6c33 bufsz=0x27f1800 mem=0x9c20000 memsz=0x2950000
> [  288.741213] kexec_file: segment[1]: buf=0x00000000bb75a541 bufsz=0x1637cd0 mem=0x80000000 memsz=0x1638000
> [  288.757182] kexec_file: kexec_file_load: type:0, start:0xb15d000 head:0x18db60002 flags:0x8
>
> Signed-off-by: Qiang Ma <maqianga@uniontech.com>
> ---
>  arch/loongarch/kernel/machine_kexec.c | 22 ----------------------
>  1 file changed, 22 deletions(-)
>
> diff --git a/arch/loongarch/kernel/machine_kexec.c b/arch/loongarch/kernel/machine_kexec.c
> index e4b2bbc47e62..2d64b7c81e5e 100644
> --- a/arch/loongarch/kernel/machine_kexec.c
> +++ b/arch/loongarch/kernel/machine_kexec.c
> @@ -39,34 +39,12 @@ static unsigned long systable_ptr;
>  static unsigned long start_addr;
>  static unsigned long first_ind_entry;
>
> -static void kexec_image_info(const struct kimage *kimage)
> -{
> -       unsigned long i;
> -
> -       pr_debug("kexec kimage info:\n");
> -       pr_debug("\ttype:        %d\n", kimage->type);
> -       pr_debug("\tstart:       %lx\n", kimage->start);
> -       pr_debug("\thead:        %lx\n", kimage->head);
> -       pr_debug("\tnr_segments: %lu\n", kimage->nr_segments);
> -
> -       for (i = 0; i < kimage->nr_segments; i++) {
> -               pr_debug("\t    segment[%lu]: %016lx - %016lx", i,
> -                       kimage->segment[i].mem,
> -                       kimage->segment[i].mem + kimage->segment[i].memsz);
> -               pr_debug("\t\t0x%lx bytes, %lu pages\n",
> -                       (unsigned long)kimage->segment[i].memsz,
> -                       (unsigned long)kimage->segment[i].memsz /  PAGE_SIZE);
> -       }
> -}
> -
>  int machine_kexec_prepare(struct kimage *kimage)
>  {
>         int i;
>         char *bootloader = "kexec";
>         void *cmdline_ptr = (void *)KEXEC_CMDLINE_ADDR;
>
> -       kexec_image_info(kimage);
> -
>         kimage->arch.efi_boot = fw_arg0;
>         kimage->arch.systable_ptr = fw_arg2;
>
> --
> 2.20.1
>