RE: kexec reports "Cannot get kernel _text symbol address" on arm64 platform

From: Pandey, Radhey Shyam
Date: Mon Aug 28 2023 - 13:40:29 EST


> -----Original Message-----
> From: Alexander Kamensky <alexander.kamensky42@xxxxxxxxx>
> Sent: Thursday, August 24, 2023 8:35 PM
> To: Pandey, Radhey Shyam <radhey.shyam.pandey@xxxxxxx>
> Cc: bhe@xxxxxxxxxx; piliu@xxxxxxxxxx; kexec@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Sarangi, Anirudha <anirudha.sarangi@xxxxxxx>
> Subject: Re: kexec reports "Cannot get kernel _text symbol address" on
> arm64 platform
>
> On Wed, Aug 23, 2023 at 12:09 PM Pandey, Radhey Shyam
> <radhey.shyam.pandey@xxxxxxx> wrote:
> >
> > > -----Original Message-----
> > > From: Alexander Kamensky <alexander.kamensky42@xxxxxxxxx>
> > > Sent: Tuesday, August 22, 2023 9:24 AM
> > > To: Pandey, Radhey Shyam <radhey.shyam.pandey@xxxxxxx>
> > > Cc: bhe@xxxxxxxxxx; piliu@xxxxxxxxxx; kexec@xxxxxxxxxxxxxxxxxxx;
> > > linux- kernel@xxxxxxxxxxxxxxx; Sarangi, Anirudha
> > > <anirudha.sarangi@xxxxxxx>
> > > Subject: Re: kexec reports "Cannot get kernel _text symbol address"
> > > on
> > > arm64 platform
> > >
> > > Hi All,
> > >
> > > Sorry for the top post, but I believe that I might have posted a fix
> > > for this issue a couple days ago.
> > >
> > > Please check and see if it helps
> > > https://lore.kernel.org/kexec/20230819191119.975299-1-
> > > alexander.kamensky42@xxxxxxxxx/T/#u
> > >
> > > Explanation for the issue I observed with a similar secondary kernel
> > > traceback on arm64 is in the commit message.
> >
> > I fetched latest kexec sources
> > (777ca453ca69e46f7376b07ba6727bd261ec97ef)
> > and applied above patch, a bit improved but still vmcore size is huge.
> >
> > / # ls -lrth /proc/vmcore
> > -r-------- 1 root root 15.5G Aug 23 18:55 /proc/vmcore
> >
> How big is your system memory? If it is 16G then the above is normal.

Yes, it's 16G.

>
> The most important thing is can your secondary kernel read it? For example
>
> cat /proc/vmcore > /dev/null

This runs fine and I can read /proc/vmcore

>
> If you want to capture only kernel core out of /proc/vmcore you need to use
> makedumpfile to filter out the rest of the memory.

Thanks for the pointers. I could use makedumpfile to extract dmesg dump
and it pointed to system Kernel dump correctly also compress dump data.

Further exploring on it and will report how the analysis goes.

xilinx-vck190-20232:/run/media/mmcblk0p1# makedumpfile -c --split -d 3 /proc/vmcore dumpfile1 dumpfile2
The kernel version is not supported.
The makedumpfile operation may be incomplete.
Checking for memory holes : [100.0 %] | Checking for memory holes : [100.0 %] |
Checking for memory holes : [100.0 %] / Checking for memory holes : [100.0 %] /
Checking for memory holes : [100.0 %] | Checking for memory holes : [100.0 %] |
Checking for memory holes : [100.0 %] \ Checking for memory holes : [100.0 %] \
Checking for memory holes : [100.0 %] | Checking for memory holes : [100.0 %] |
Checking for memory holes : [100.0 %] - Checking for memory holes : [100.0 %] -
Copying data : [ 45.7 %] - eta: 6m13s
Copying data : [ 54.1 %] - eta: 1s

The dumpfiles are saved to dumpfile1, and dumpfile2.

makedumpfile Completed.

>
> Thanks,
> Alexander
>
> > Thanks,
> > Radhey