From: Huang Shijie <shijie@os.amperecomputing.com>
To: kexec@lists.infradead.org
Subject: [PATCH] arm64: crash_core: Export MODULES, VMALLOC, and VMEMMAP ranges
Date: Thu, 17 Feb 2022 10:01:49 +0000 [thread overview]
Message-ID: <Yg4dDZGEyRzWcGH1@hsj> (raw)
In-Reply-To: <20220216124026.GB9949@willie-the-truck>
Hi Will,
CC Kazu and Lianbo.
On Wed, Feb 16, 2022 at 12:40:27PM +0000, Will Deacon wrote:
> On Wed, Feb 16, 2022 at 09:28:49AM +0000, Huang Shijie wrote:
> > Hi Will,
> > On Tue, Feb 15, 2022 at 04:44:23PM +0000, Will Deacon wrote:
> > > On Wed, Feb 09, 2022 at 09:26:42AM +0000, Huang Shijie wrote:
> > > > The following interrelated ranges are needed by the kdump crash tool:
> > > > MODULES_VADDR ~ MODULES_END,
> > > > VMALLOC_START ~ VMALLOC_END,
> > > > VMEMMAP_START ~ VMEMMAP_END
> > > >
> > > > Since these values change from time to time, it is preferable to export
> > > > them via vmcoreinfo than to change the crash's code frequently.
> > >
> > > Please can you explain _why_ they are needed?
> >
> > The current Crash code is still based at kernel v4.9.
> > The virtual memory layout looks like this:
> > +--------------------------------------------------------------------+
> > | KASAN | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The Crash uses MODULES range to set the VMALLOC ranges.
> > If the ranges are wrong, Crash will _NOT_ works well for some latest kernel
> > ,such as v5.11 later. (Please correct me if I am wrong).
> > It seems the VMEMMAP range is less important.
>
> [...]
>
> > 5.) In the kernel v5.16, after the patch
> > "b89ddf4cca43 arm64/bpf: Remove 128MB limit for BPF JIT programs"
> > the virtual memory layout looks like this:
> >
> > +--------------------------------------------------------------------+
> > | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The macros are:
> > #define MODULES_VADDR (_PAGE_END(VA_BITS_MIN))
> > #define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
> >
> > #define VMALLOC_START (MODULES_END)
> > #define VMALLOC_END (VMEMMAP_START - SZ_256M)
> >
> > #define VMEMMAP_START (-(UL(1) << (VA_BITS - VMEMMAP_SHIFT)))
> > #define VMEMMAP_END (VMEMMAP_START + VMEMMAP_SIZE)
> >
> >
> > BTW:I am currently coding a patch for the Crash to update all the ranges to
> > the latest kernel version v5.17-rc4.
>
> Thanks for digging up all of the kernel memory map changes and taking the
> time to explain the macros. However, all I'm really after is something in
> the commit message of the patch which explains what is broken without this
This kernel patch does not break anything.
It just makes the Crash easy to maintain.
> patch. What does crash use this information for, and what doesn't work at
> the moment?
I know two cases now:
1.) The Crash uses MODULES/VMALLOC/VMEMMAP ranges in
arm64_IS_VMALLOC_ADDR():
https://github.com/crash-utility/crash/blob/master/arm64.c#L4104
If arm64_IS_VMALLOC_ADDR() does not work correctly, the internal
code may get wrong results.
2.) The "help -m" gets wrong output about MODULES/VMALLOC/VMEMMAP ranges.
The guy who use the Use the Crash to debug a vmcore, will get the wrong
information of the kernel panic.
Thanks
Huang Shijie
WARNING: multiple messages have this Message-ID (diff)
From: Huang Shijie <shijie@os.amperecomputing.com>
To: Will Deacon <will@kernel.org>
Cc: catalin.marinas@arm.com, bhe@redhat.com, vgoyal@redhat.com,
dyoung@redhat.com, corbet@lwn.net, kexec@lists.infradead.org,
linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, zwang@amperecomputing.com,
patches@amperecomputing.com, darren@os.amperecomputing.com,
k-hagio-ab@nec.com, lijiang@redhat.com
Subject: Re: [PATCH] arm64: crash_core: Export MODULES, VMALLOC, and VMEMMAP ranges
Date: Thu, 17 Feb 2022 10:01:49 +0000 [thread overview]
Message-ID: <Yg4dDZGEyRzWcGH1@hsj> (raw)
In-Reply-To: <20220216124026.GB9949@willie-the-truck>
Hi Will,
CC Kazu and Lianbo.
On Wed, Feb 16, 2022 at 12:40:27PM +0000, Will Deacon wrote:
> On Wed, Feb 16, 2022 at 09:28:49AM +0000, Huang Shijie wrote:
> > Hi Will,
> > On Tue, Feb 15, 2022 at 04:44:23PM +0000, Will Deacon wrote:
> > > On Wed, Feb 09, 2022 at 09:26:42AM +0000, Huang Shijie wrote:
> > > > The following interrelated ranges are needed by the kdump crash tool:
> > > > MODULES_VADDR ~ MODULES_END,
> > > > VMALLOC_START ~ VMALLOC_END,
> > > > VMEMMAP_START ~ VMEMMAP_END
> > > >
> > > > Since these values change from time to time, it is preferable to export
> > > > them via vmcoreinfo than to change the crash's code frequently.
> > >
> > > Please can you explain _why_ they are needed?
> >
> > The current Crash code is still based at kernel v4.9.
> > The virtual memory layout looks like this:
> > +--------------------------------------------------------------------+
> > | KASAN | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The Crash uses MODULES range to set the VMALLOC ranges.
> > If the ranges are wrong, Crash will _NOT_ works well for some latest kernel
> > ,such as v5.11 later. (Please correct me if I am wrong).
> > It seems the VMEMMAP range is less important.
>
> [...]
>
> > 5.) In the kernel v5.16, after the patch
> > "b89ddf4cca43 arm64/bpf: Remove 128MB limit for BPF JIT programs"
> > the virtual memory layout looks like this:
> >
> > +--------------------------------------------------------------------+
> > | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The macros are:
> > #define MODULES_VADDR (_PAGE_END(VA_BITS_MIN))
> > #define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
> >
> > #define VMALLOC_START (MODULES_END)
> > #define VMALLOC_END (VMEMMAP_START - SZ_256M)
> >
> > #define VMEMMAP_START (-(UL(1) << (VA_BITS - VMEMMAP_SHIFT)))
> > #define VMEMMAP_END (VMEMMAP_START + VMEMMAP_SIZE)
> >
> >
> > BTW:I am currently coding a patch for the Crash to update all the ranges to
> > the latest kernel version v5.17-rc4.
>
> Thanks for digging up all of the kernel memory map changes and taking the
> time to explain the macros. However, all I'm really after is something in
> the commit message of the patch which explains what is broken without this
This kernel patch does not break anything.
It just makes the Crash easy to maintain.
> patch. What does crash use this information for, and what doesn't work at
> the moment?
I know two cases now:
1.) The Crash uses MODULES/VMALLOC/VMEMMAP ranges in
arm64_IS_VMALLOC_ADDR():
https://github.com/crash-utility/crash/blob/master/arm64.c#L4104
If arm64_IS_VMALLOC_ADDR() does not work correctly, the internal
code may get wrong results.
2.) The "help -m" gets wrong output about MODULES/VMALLOC/VMEMMAP ranges.
The guy who use the Use the Crash to debug a vmcore, will get the wrong
information of the kernel panic.
Thanks
Huang Shijie
WARNING: multiple messages have this Message-ID (diff)
From: Huang Shijie <shijie@os.amperecomputing.com>
To: Will Deacon <will@kernel.org>
Cc: catalin.marinas@arm.com, bhe@redhat.com, vgoyal@redhat.com,
dyoung@redhat.com, corbet@lwn.net, kexec@lists.infradead.org,
linux-doc@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, zwang@amperecomputing.com,
patches@amperecomputing.com, darren@os.amperecomputing.com,
k-hagio-ab@nec.com, lijiang@redhat.com
Subject: Re: [PATCH] arm64: crash_core: Export MODULES, VMALLOC, and VMEMMAP ranges
Date: Thu, 17 Feb 2022 10:01:49 +0000 [thread overview]
Message-ID: <Yg4dDZGEyRzWcGH1@hsj> (raw)
In-Reply-To: <20220216124026.GB9949@willie-the-truck>
Hi Will,
CC Kazu and Lianbo.
On Wed, Feb 16, 2022 at 12:40:27PM +0000, Will Deacon wrote:
> On Wed, Feb 16, 2022 at 09:28:49AM +0000, Huang Shijie wrote:
> > Hi Will,
> > On Tue, Feb 15, 2022 at 04:44:23PM +0000, Will Deacon wrote:
> > > On Wed, Feb 09, 2022 at 09:26:42AM +0000, Huang Shijie wrote:
> > > > The following interrelated ranges are needed by the kdump crash tool:
> > > > MODULES_VADDR ~ MODULES_END,
> > > > VMALLOC_START ~ VMALLOC_END,
> > > > VMEMMAP_START ~ VMEMMAP_END
> > > >
> > > > Since these values change from time to time, it is preferable to export
> > > > them via vmcoreinfo than to change the crash's code frequently.
> > >
> > > Please can you explain _why_ they are needed?
> >
> > The current Crash code is still based at kernel v4.9.
> > The virtual memory layout looks like this:
> > +--------------------------------------------------------------------+
> > | KASAN | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The Crash uses MODULES range to set the VMALLOC ranges.
> > If the ranges are wrong, Crash will _NOT_ works well for some latest kernel
> > ,such as v5.11 later. (Please correct me if I am wrong).
> > It seems the VMEMMAP range is less important.
>
> [...]
>
> > 5.) In the kernel v5.16, after the patch
> > "b89ddf4cca43 arm64/bpf: Remove 128MB limit for BPF JIT programs"
> > the virtual memory layout looks like this:
> >
> > +--------------------------------------------------------------------+
> > | MODULE | VMALLOC | .... | VMEMMAP |
> > +--------------------------------------------------------------------+
> >
> > The macros are:
> > #define MODULES_VADDR (_PAGE_END(VA_BITS_MIN))
> > #define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
> >
> > #define VMALLOC_START (MODULES_END)
> > #define VMALLOC_END (VMEMMAP_START - SZ_256M)
> >
> > #define VMEMMAP_START (-(UL(1) << (VA_BITS - VMEMMAP_SHIFT)))
> > #define VMEMMAP_END (VMEMMAP_START + VMEMMAP_SIZE)
> >
> >
> > BTW:I am currently coding a patch for the Crash to update all the ranges to
> > the latest kernel version v5.17-rc4.
>
> Thanks for digging up all of the kernel memory map changes and taking the
> time to explain the macros. However, all I'm really after is something in
> the commit message of the patch which explains what is broken without this
This kernel patch does not break anything.
It just makes the Crash easy to maintain.
> patch. What does crash use this information for, and what doesn't work at
> the moment?
I know two cases now:
1.) The Crash uses MODULES/VMALLOC/VMEMMAP ranges in
arm64_IS_VMALLOC_ADDR():
https://github.com/crash-utility/crash/blob/master/arm64.c#L4104
If arm64_IS_VMALLOC_ADDR() does not work correctly, the internal
code may get wrong results.
2.) The "help -m" gets wrong output about MODULES/VMALLOC/VMEMMAP ranges.
The guy who use the Use the Crash to debug a vmcore, will get the wrong
information of the kernel panic.
Thanks
Huang Shijie
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-02-17 10:01 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-09 9:26 [PATCH] arm64: crash_core: Export MODULES, VMALLOC, and VMEMMAP ranges Huang Shijie
2022-02-09 9:26 ` Huang Shijie
2022-02-09 9:26 ` Huang Shijie
2022-02-09 3:16 ` Baoquan He
2022-02-09 3:16 ` Baoquan He
2022-02-09 3:16 ` Baoquan He
2022-02-15 16:44 ` Will Deacon
2022-02-15 16:44 ` Will Deacon
2022-02-15 16:44 ` Will Deacon
2022-02-16 9:28 ` Huang Shijie
2022-02-16 9:28 ` Huang Shijie
2022-02-16 9:28 ` Huang Shijie
2022-02-16 12:40 ` Will Deacon
2022-02-16 12:40 ` Will Deacon
2022-02-16 12:40 ` Will Deacon
2022-02-17 10:01 ` Huang Shijie [this message]
2022-02-17 10:01 ` Huang Shijie
2022-02-17 10:01 ` Huang Shijie
2022-02-17 10:29 ` Huang Shijie
2022-02-17 10:29 ` Huang Shijie
2022-02-17 10:29 ` Huang Shijie
2022-03-07 22:03 ` Will Deacon
2022-03-07 22:03 ` Will Deacon
2022-03-07 22:03 ` Will Deacon
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=Yg4dDZGEyRzWcGH1@hsj \
--to=shijie@os.amperecomputing.com \
--cc=kexec@lists.infradead.org \
/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.