All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bhupesh Sharma <bhsharma@redhat.com>
To: Prabhakar Kushwaha <prabhakar.pkin@gmail.com>
Cc: Prabhakar Kushwaha <pkushwaha@marvell.com>,
	kexec mailing list <kexec@lists.infradead.org>,
	Ganapatrao Prabhakerrao Kulkarni <gkulkarni@marvell.com>
Subject: Re: kexec-tools/vmcore-demsg: No program header covering vaddr 0xffff000be7a00000found kexec bug?
Date: Thu, 28 Nov 2019 02:13:00 +0530	[thread overview]
Message-ID: <CACi5LpPP3kNrokpbN6fjkVjyuGCwVh61SCpoDL3WczMz7x6hbg@mail.gmail.com> (raw)
In-Reply-To: <CAJ2QiJKK1Q9_g68OpHNdErRSU4hwOx4VtkPkBsvyfG_RJjgpQg@mail.gmail.com>

 Hi Prabhakar,

On Wed, Nov 27, 2019 at 10:20 AM Prabhakar Kushwaha
<prabhakar.pkin@gmail.com> wrote:
>
> Thanks Bhupesh for replying
>
> On Wed, Nov 27, 2019 at 2:42 AM Bhupesh Sharma <bhsharma@redhat.com> wrote:
> >
> > Hi Prabhakar,
> >
> > On Tue, Nov 26, 2019 at 1:04 PM Prabhakar Kushwaha
> > <prabhakar.pkin@gmail.com> wrote:
> > >
> > > Hi All,
> > >
> > > I am facing issue below error with latest kexec-tools/vmcore-demsg tools.
> > >
> > > $ ./build/sbin/vmcore-dmesg /proc/vmcore
> > > No program header covering vaddr 0xffff000be7a00000found kexec bug?
> > >
> > > I am testing on AARM64 platform with following git repos.
> > > A) kexec tools:
> > > https://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git
> > > top commit: bd077966e2b9041c (kexec-tools: Fix conversion overflow
> > > when compiling on 32-bit platforms)
> > >
> > > B) Linux:git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> > > top commit: af42d3466bdc8f3980 (Linux 5.4-rc8)
> > >
> > > I am seeing similar issue in past also in couple of discussions. has
> > > it not fixed earlier or it keep arises with time to time
> > >
> > > Please suggest.
> >
> > Thanks for reporting the issue.
> > I think the issue with the latest ARM64 kernel and kexec-tools is the
> > same as the makedumpfile, i.e. the PAGE_OFFSET calculation needs to be
> > dynamically done for 52-bit VA_BITS correctly as well.
> >
>
> Yes we need dynamic approach of calculating VA_BITS.
>
> Please note, the AARM64 platform used by us is 48Bit.
> CONFIG_ARM64_VA_BITS_48=y
> CONFIG_ARM64_VA_BITS=48
> CONFIG_ARM64_PA_BITS_48=y
> CONFIG_ARM64_PA_BITS=48
>
> As per my understanding, this issue is not because of 52 bit. It is
> due to patch 14c127c957c1 ("arm64: mm: Flip kernel VA space") in
> Linux.
> i.e. PAGE_OFFSET address has been moved to bottom instead of middle in
> kernel virtual address space.

Well the changes for flipping the kernel VA space on arm64 was need
for introducing the 52-bit VA address space.
You can look at Steve Capper's 53-bit patchset for details which was
finally merged in the mainline [of which 14c127c957c1 ("arm64: mm:
Flip kernel VA space") is a part]:


> As below changes solves mentioned kexec-tools/vmcore-demsg problem.
>
> diff --git a/kexec/arch/arm64/crashdump-arm64.c
> b/kexec/arch/arm64/crashdump-arm64.c
> index 4fd7aa8..1c28b06 100644
> --- a/kexec/arch/arm64/crashdump-arm64.c
> +++ b/kexec/arch/arm64/crashdump-arm64.c
> @@ -58,6 +58,8 @@ static uint64_t get_kernel_page_offset(void)
>  {
>         int i;
>
> +       return 0xffff000000000000;  --> PAGE_OFFSET

Yes, you are hardcoding the PAGE_OFFSET as 0xffff000000000000 for a
vabits_actual value of 48-bits and it will work fine on platforms
which don't support ARMv8.2 LVA extensions (i.e. ARM v8.2), however on
real ARMv8.2 hardware the PAGE_OFFSET value should be
0xfff0000000000000 (for vabits_actual value of 52 bits). See '52-bit
VA support in the kernel' section in
<https://www.kernel.org/doc/Documentation/arm64/memory.rst> for
details.

I think I have found a more generic solution to the issue, but I still
need to verify on the ARMv8 simulator model (as I need to test othe
same on 52-bit platforms as well).

Regards,
Bhupesh

>         if (elf_info.kern_vaddr_start == UINT64_MAX)
>                 return UINT64_MAX;
>
> Also, I verified by moving one patch below 14c127c957c1 in Linux, no
> changes required in kexect-tools. Everything works fine.
>
> The calculation used in makedumpfile (your patches), indirectly takes
> care of this.  So we need similar calculation here in kexec also.
>
>
>
> --pk
>


_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

      reply	other threads:[~2019-11-27 20:43 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-26  7:34 kexec-tools/vmcore-demsg: No program header covering vaddr 0xffff000be7a00000found kexec bug? Prabhakar Kushwaha
2019-11-26 14:01 ` Prabhakar Kushwaha
2019-11-26 21:11 ` Bhupesh Sharma
2019-11-27  4:50   ` Prabhakar Kushwaha
2019-11-27 20:43     ` Bhupesh Sharma [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CACi5LpPP3kNrokpbN6fjkVjyuGCwVh61SCpoDL3WczMz7x6hbg@mail.gmail.com \
    --to=bhsharma@redhat.com \
    --cc=gkulkarni@marvell.com \
    --cc=kexec@lists.infradead.org \
    --cc=pkushwaha@marvell.com \
    --cc=prabhakar.pkin@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.