makedumpfile: support for newer kernels [v4.9 onwards]

Dave Anderson anderson at redhat.com
Tue Jun 13 06:39:02 PDT 2017


----- Original Message -----

> Hi Abhishek,
> 
> On Thursday 08 June 2017 11:30 AM, Abhishek Shah wrote:
> > Hi Pratyush,
> >
> >>>> I am using yocto(2.3 version) to build makedumpfile, which fetches v1.6.1
> >>>> makedumpfile and also applys some patches including arm64 specific patches.
> >>
> >>
> >> What are these ARM64 specific patches? I believe, you do not need any topup
> >> in makedumpfile for ARM64 if you use v1.6.1.
> >
> > Sorry, I got confused with yocto kexec recipe.
> > There are NO arm64 specific patches in yocto for makedumpfile.
> >
> >>>> We have VA_BITS set as 48 bits... I will get other information and post
> >>>> on the list.
> >>
> >>
> >> OK.
> >>
> > Kernel config:
> > ARM64_VA_BITS_48 [=y]
> > ARM64_PAGE_SHIFT [=12]
> > RANDOMIZE_BASE [=n]
> > ARM64_4K_PAGES [=y]
> 
> These are the only variable configs on which arm64 makedumpfile depends. I
> tested with above configuration and things were working fine.
> 
> I used 4.11 based kernel and  crash-7.1.9.
> 
> BTW, which version of crash utility do you use. If you are not at latest can
> you please try with latest.
> 
> ~Pratyush
> 
> CCed Dave if he has some input.
> @Dave, problem reported by Abhishek is:
> 
>  > /proc/vmcore works fine with crash utility without passing it though
>  > makedumpfile, but the file generated by makedumpfile is not getting
>  > processed by crash utility; I am getting following error:
>  > crash: seek error: kernel virtual address: ffff8008000c16a0  type: "memory
>  > section"


A "seek error" means that the page for the physical address that was translated
from ffff8008000c16a0 could not be found in the dumpfile.  The output from 
"crash --d ..." might yield some additional clues. 

However, given that crash apparently works with the 4.12 /proc/vmcore that the
dumpfile was generated from, it seemingly points to makedumpfile.  That's always 
the first thing I ask when seeing this kind of bug, i.e., does crash work with the
same kernel on a live system, or even better, with the initial ELF vmcore file
from which it was generated.  If it does, then it's usually a makedumpfile issue,
because the virtual address gets translated to a physical address by the upper-level
crash code, and then passed down into whatever the underlying memory source is.  
If it could be read from /proc/vmcore, then it should accessible from makedumpfile's
compressed kdump.

That being said, I haven't tested ARM64 on any 4.12-rc kernels.

Dave



More information about the kexec mailing list