[PATCH 3/3] RISC-V: add bss section to kernel text elf header

Simon Horman horms at kernel.org
Wed May 20 02:30:10 PDT 2026


On Wed, May 20, 2026 at 03:35:20PM +0800, hu.shengming at zte.com.cn wrote:
> horms at kernel.org wrote:
> > On Mon, May 18, 2026 at 03:01:40PM +0800, hu.shengming at zte.com.cn wrote:
> > > From: Luo Haiyang <luo.haiyang at zte.com.cn>
> > > 
> > > The kdump service reported the following error:
> > > 
> > >   No program header covering vaddr 0xffffffff819fa200 found kexec bug?
> > >   saving vmcore-dmesg.txt failed
> > > 
> > > prb stores the address of printk_rb_dynamic. Since printk_rb_dynamic
> > > resides in the bss segment and the PHDR (Program Header) does not include
> > > the bss segment address. Therefore,  add the bss segment to the Kernel text.
> > > 
> > > Signed-off-by: Luo Haiyang <luo.haiyang at zte.com.cn>
> > 
> > Hi,
> > 
> > I am wondering if to_be_excluded() also needs to be updated.
> > And, if so, should that change also be made for ARM64.
> > 
> > Review assisted by gemini-3-pro-preview
> 
> Thanks for taking a look.
> 
> On arm64, the kernel code contains text and rodata section, and the kernel data 
> contains data and bss section. Therefore, the arm64 architecture does not have
> a similar issue.
> 
> Yes, on RISC-V, the to_be_excluded function does not properly handle the kernel
> memory range, it is still being excluded.
> 
>   cat /proc/iomem | grep Kernel
>     878a02000-87a8426e7 : Kernel image
>     878a02000-87944d309 : Kernel code
>     879c00000-87a1fffff : Kernel rodata
>     87a400000-87a7741ff : Kernel data
>     87a775000-87a8426e7 : Kernel bss
> 
> Maybe we can directly use the kernel image in iomem_range_callback, and only the
> reserved memory needs to be excluded, like this:
> 
>   static int iomem_range_callback(...)
>   {
>   	....
>   	else if (!strncmp(str, KERNEL_IMAGE, strlen(KERNEL_IMAGE))) {
>   			elf_info.kern_paddr_start = base;
>   			elf_info.kern_size = length;
>   	}
>   
>   	return 0;
>   }
> 
>   static bool to_be_excluded(...)
>   {
>    ...
>   	  if (!strncmp(str, IOMEM_RESERVED, strlen(IOMEM_RESERVED)))
>   		  return true;
>   
>   	  return false;
>   }
> 
> If you think this change is acceptable, I will resubmit patch v3 later.

Thanks, sounds good to me.



More information about the kexec mailing list