[PATCH] makedumpfile: ppc64: get vmalloc start address from vmcoreinfo

Sachin Sant sachinp at linux.ibm.com
Fri Feb 23 20:34:31 PST 2024



> On 24-Feb-2024, at 12:33 AM, Aditya Gupta <adityag at linux.ibm.com> wrote:
> 
> Below error was noticed when running makedumpfile on linux-next kernel
> crash (linux-next tag next-20240121):
> 
>    ...
>    Checking for memory holes : [100.0 %] | readpage_elf: Attempt to read non-existent page at 0xc000000000000.
>    [ 17.551718] kdump.sh[404]: readmem: type_addr: 0, addr:c00c000000000000, size:16384
>    [ 17.551793] kdump.sh[404]: __exclude_unnecessary_pages: Can't read the buffer of struct page.
>    [ 17.551864] kdump.sh[404]: create_2nd_bitmap: Can't exclude unnecessary pages.
>    [ 17.562632] kdump.sh[404]: The kernel version is not supported.
>    [ 17.562708] kdump.sh[404]: The makedumpfile operation may be incomplete.
>    [ 17.562773] kdump.sh[404]: makedumpfile Failed.
>    [ 17.564335] kdump[406]: saving vmcore failed, _exitcode:1
> 
> Above error was due to 'vmap_area_list' and 'vmlist' symbols missing
> from the vmcore.
> 
> 'vmap_area_list' was removed in the linux kernel with below commit:
> 
>    commit 378eb24a0658dd922b29524e0ce35c6c43f56cba
>         mm/vmalloc: remove vmap_area_list
> 
> Subsequently the commit also introduced 'VMALLOC_START' in vmcoreinfo to
> get base address of vmalloc area, instead of depending on 'vmap_area_list'
> 
> Hence if 'VMALLOC_START' symbol is there in vmcoreinfo:
>  1. Set vmalloc_start based on 'VMALLOC_START'
>  2. Don't error if vmap_area_list/vmlist are not defined
> 
> Reported-by: Sachin Sant <sachinp at linux.ibm.com>
> Signed-off-by: Aditya Gupta <adityag at linux.ibm.com>
> ---

Thanks Aditya for the fix. With this fix applied makedumpfile is able to
save vmcore during kdump.

Tested-by: Sachin Sant <sachinp at linux.ibm.com>

- Sachin


More information about the kexec mailing list