From: Catalin Marinas <catalin.marinas@arm.com>
To: Bhupesh Sharma <bhsharma@redhat.com>
Cc: wangkefeng.wang@huawei.com,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Chen Zhou <chenzhou10@huawei.com>,
huawei.libin@huawei.com, guohanjun@huawei.com,
Will Deacon <will@kernel.org>, Baoquan He <bhe@redhat.com>,
Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>,
RuiRui Yang <dyoung@redhat.com>,
John Donnelly <john.p.donnelly@oracle.com>,
Arnd Bergmann <arnd@arndb.de>,
xiexiuqi@huawei.com, Simon Horman <horms@verge.net.au>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
kexec mailing list <kexec@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>,
James Morse <james.morse@arm.com>,
Prabhakar Kushwaha <prabhakar.pkin@gmail.com>,
nsaenzjulienne@suse.de
Subject: Re: [PATCH v12 0/9] support reserving crashkernel above 4G on arm64 kdump
Date: Wed, 7 Oct 2020 17:33:19 +0100 [thread overview]
Message-ID: <20201007163319.GS3462@gaia> (raw)
In-Reply-To: <CACi5LpMmccLX9p0ZXnEbWHgn2LRrVSDQZF9zBGzfZySe3TvXEQ@mail.gmail.com>
On Wed, Oct 07, 2020 at 12:37:49PM +0530, Bhupesh Sharma wrote:
> On Tue, Oct 6, 2020 at 11:30 PM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > On Mon, Oct 05, 2020 at 11:12:10PM +0530, Bhupesh Sharma wrote:
> > > I think my earlier email with the test results on this series bounced
> > > off the mailing list server (for some weird reason), but I still see
> > > several issues with this patchset. I will add specific issues in the
> > > review comments for each patch again, but overall, with a crashkernel
> > > size of say 786M, I see the following issue:
> > >
> > > # cat /proc/cmdline
> > > BOOT_IMAGE=(hd7,gpt2)/vmlinuz-5.9.0-rc7+ root=<..snip..> rd.lvm.lv=<..snip..> crashkernel=786M
> > >
> > > I see two regions of size 786M and 256M reserved in low and high
> > > regions respectively, So we reserve a total of 1042M of memory, which
> > > is an incorrect behaviour:
> > >
> > > # dmesg | grep -i crash
> > > [ 0.000000] Reserving 256MB of low memory at 2816MB for crashkernel (System low RAM: 768MB)
> > > [ 0.000000] Reserving 786MB of memory at 654158MB for crashkernel (System RAM: 130816MB)
> > > [ 0.000000] Kernel command line: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.9.0-rc7+ root=/dev/mapper/rhel_ampere--hr330a--03-root ro rd.lvm.lv=rhel_ampere-hr330a-03/root rd.lvm.lv=rhel_ampere-hr330a-03/swap crashkernel=786M cma=1024M
> > >
> > > # cat /proc/iomem | grep -i crash
> > > b0000000-bfffffff : Crash kernel (low)
> > > bfcbe00000-bffcffffff : Crash kernel
> >
> > As Chen said, that's the intended behaviour and how x86 works. The
> > requested 768M goes in the high range if there's not enough low memory
> > and an additional buffer for swiotlb is allocated, hence the low 256M.
>
> I understand, but why 256M (as low) for arm64? x86_64 setups usually
> have more system memory available as compared to several commercially
> available arm64 setups. So is the intent, just to keep the behavior
> similar between arm64 and x86_64?
Similar in the sense of the fallback to high memory and some low memory
allocation but the amounts can vary per architecture.
> Should we have a CONFIG option / bootarg to help one select the max
> 'low_size'? Currently the ' low_size' value is calculated as:
>
> /*
> * two parts from kernel/dma/swiotlb.c:
> * -swiotlb size: user-specified with swiotlb= or default.
> *
> * -swiotlb overflow buffer: now hardcoded to 32k. We round it
> * to 8M for other buffers that may need to stay low too. Also
> * make sure we allocate enough extra low memory so that we
> * don't run out of DMA buffers for 32-bit devices.
> */
> low_size = max(swiotlb_size_or_default() + (8UL << 20), 256UL << 20);
>
> Since many arm64 boards ship with swiotlb=0 (turned off) via kernel
> bootargs, the low_size, still ends up being 256M in such cases,
> whereas this 256M can be used for some other purposes - so should we
> be limiting this to 64M and failing the crash kernel allocation
> request (gracefully) otherwise?
I think it makes sense to set a low_size = 0 if
swiotlb_size_or_default() is 0. The assumption would be that if the main
kernel doesn't need an swiotlb, the crashdump one wouldn't need it
either. But this probably needs the ZONE_DMA for non-RPi4 platforms
addressed as well (expanded to the whole ZONE_DMA32).
--
Catalin
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Bhupesh Sharma <bhsharma@redhat.com>
Cc: John Donnelly <john.p.donnelly@oracle.com>,
Chen Zhou <chenzhou10@huawei.com>, Will Deacon <will@kernel.org>,
James Morse <james.morse@arm.com>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, RuiRui Yang <dyoung@redhat.com>,
Baoquan He <bhe@redhat.com>, Jonathan Corbet <corbet@lwn.net>,
Prabhakar Kushwaha <prabhakar.pkin@gmail.com>,
Simon Horman <horms@verge.net.au>,
Rob Herring <robh+dt@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
nsaenzjulienne@suse.de,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
kexec mailing list <kexec@lists.infradead.org>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
guohanjun@huawei.com, xiexiuqi@huawei.com,
huawei.libin@huawei.com, wangkefeng.wang@huawei.com
Subject: Re: [PATCH v12 0/9] support reserving crashkernel above 4G on arm64 kdump
Date: Wed, 7 Oct 2020 17:33:19 +0100 [thread overview]
Message-ID: <20201007163319.GS3462@gaia> (raw)
In-Reply-To: <CACi5LpMmccLX9p0ZXnEbWHgn2LRrVSDQZF9zBGzfZySe3TvXEQ@mail.gmail.com>
On Wed, Oct 07, 2020 at 12:37:49PM +0530, Bhupesh Sharma wrote:
> On Tue, Oct 6, 2020 at 11:30 PM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > On Mon, Oct 05, 2020 at 11:12:10PM +0530, Bhupesh Sharma wrote:
> > > I think my earlier email with the test results on this series bounced
> > > off the mailing list server (for some weird reason), but I still see
> > > several issues with this patchset. I will add specific issues in the
> > > review comments for each patch again, but overall, with a crashkernel
> > > size of say 786M, I see the following issue:
> > >
> > > # cat /proc/cmdline
> > > BOOT_IMAGE=(hd7,gpt2)/vmlinuz-5.9.0-rc7+ root=<..snip..> rd.lvm.lv=<..snip..> crashkernel=786M
> > >
> > > I see two regions of size 786M and 256M reserved in low and high
> > > regions respectively, So we reserve a total of 1042M of memory, which
> > > is an incorrect behaviour:
> > >
> > > # dmesg | grep -i crash
> > > [ 0.000000] Reserving 256MB of low memory at 2816MB for crashkernel (System low RAM: 768MB)
> > > [ 0.000000] Reserving 786MB of memory at 654158MB for crashkernel (System RAM: 130816MB)
> > > [ 0.000000] Kernel command line: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.9.0-rc7+ root=/dev/mapper/rhel_ampere--hr330a--03-root ro rd.lvm.lv=rhel_ampere-hr330a-03/root rd.lvm.lv=rhel_ampere-hr330a-03/swap crashkernel=786M cma=1024M
> > >
> > > # cat /proc/iomem | grep -i crash
> > > b0000000-bfffffff : Crash kernel (low)
> > > bfcbe00000-bffcffffff : Crash kernel
> >
> > As Chen said, that's the intended behaviour and how x86 works. The
> > requested 768M goes in the high range if there's not enough low memory
> > and an additional buffer for swiotlb is allocated, hence the low 256M.
>
> I understand, but why 256M (as low) for arm64? x86_64 setups usually
> have more system memory available as compared to several commercially
> available arm64 setups. So is the intent, just to keep the behavior
> similar between arm64 and x86_64?
Similar in the sense of the fallback to high memory and some low memory
allocation but the amounts can vary per architecture.
> Should we have a CONFIG option / bootarg to help one select the max
> 'low_size'? Currently the ' low_size' value is calculated as:
>
> /*
> * two parts from kernel/dma/swiotlb.c:
> * -swiotlb size: user-specified with swiotlb= or default.
> *
> * -swiotlb overflow buffer: now hardcoded to 32k. We round it
> * to 8M for other buffers that may need to stay low too. Also
> * make sure we allocate enough extra low memory so that we
> * don't run out of DMA buffers for 32-bit devices.
> */
> low_size = max(swiotlb_size_or_default() + (8UL << 20), 256UL << 20);
>
> Since many arm64 boards ship with swiotlb=0 (turned off) via kernel
> bootargs, the low_size, still ends up being 256M in such cases,
> whereas this 256M can be used for some other purposes - so should we
> be limiting this to 64M and failing the crash kernel allocation
> request (gracefully) otherwise?
I think it makes sense to set a low_size = 0 if
swiotlb_size_or_default() is 0. The assumption would be that if the main
kernel doesn't need an swiotlb, the crashdump one wouldn't need it
either. But this probably needs the ZONE_DMA for non-RPi4 platforms
addressed as well (expanded to the whole ZONE_DMA32).
--
Catalin
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Bhupesh Sharma <bhsharma@redhat.com>
Cc: wangkefeng.wang@huawei.com,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Chen Zhou <chenzhou10@huawei.com>,
huawei.libin@huawei.com, guohanjun@huawei.com,
Will Deacon <will@kernel.org>, Baoquan He <bhe@redhat.com>,
Jonathan Corbet <corbet@lwn.net>, Ingo Molnar <mingo@redhat.com>,
RuiRui Yang <dyoung@redhat.com>,
John Donnelly <john.p.donnelly@oracle.com>,
Arnd Bergmann <arnd@arndb.de>,
xiexiuqi@huawei.com, Simon Horman <horms@verge.net.au>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
kexec mailing list <kexec@lists.infradead.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Rob Herring <robh+dt@kernel.org>,
James Morse <james.morse@arm.com>,
Prabhakar Kushwaha <prabhakar.pkin@gmail.com>,
nsaenzjulienne@suse.de
Subject: Re: [PATCH v12 0/9] support reserving crashkernel above 4G on arm64 kdump
Date: Wed, 7 Oct 2020 17:33:19 +0100 [thread overview]
Message-ID: <20201007163319.GS3462@gaia> (raw)
In-Reply-To: <CACi5LpMmccLX9p0ZXnEbWHgn2LRrVSDQZF9zBGzfZySe3TvXEQ@mail.gmail.com>
On Wed, Oct 07, 2020 at 12:37:49PM +0530, Bhupesh Sharma wrote:
> On Tue, Oct 6, 2020 at 11:30 PM Catalin Marinas <catalin.marinas@arm.com> wrote:
> > On Mon, Oct 05, 2020 at 11:12:10PM +0530, Bhupesh Sharma wrote:
> > > I think my earlier email with the test results on this series bounced
> > > off the mailing list server (for some weird reason), but I still see
> > > several issues with this patchset. I will add specific issues in the
> > > review comments for each patch again, but overall, with a crashkernel
> > > size of say 786M, I see the following issue:
> > >
> > > # cat /proc/cmdline
> > > BOOT_IMAGE=(hd7,gpt2)/vmlinuz-5.9.0-rc7+ root=<..snip..> rd.lvm.lv=<..snip..> crashkernel=786M
> > >
> > > I see two regions of size 786M and 256M reserved in low and high
> > > regions respectively, So we reserve a total of 1042M of memory, which
> > > is an incorrect behaviour:
> > >
> > > # dmesg | grep -i crash
> > > [ 0.000000] Reserving 256MB of low memory at 2816MB for crashkernel (System low RAM: 768MB)
> > > [ 0.000000] Reserving 786MB of memory at 654158MB for crashkernel (System RAM: 130816MB)
> > > [ 0.000000] Kernel command line: BOOT_IMAGE=(hd2,gpt2)/vmlinuz-5.9.0-rc7+ root=/dev/mapper/rhel_ampere--hr330a--03-root ro rd.lvm.lv=rhel_ampere-hr330a-03/root rd.lvm.lv=rhel_ampere-hr330a-03/swap crashkernel=786M cma=1024M
> > >
> > > # cat /proc/iomem | grep -i crash
> > > b0000000-bfffffff : Crash kernel (low)
> > > bfcbe00000-bffcffffff : Crash kernel
> >
> > As Chen said, that's the intended behaviour and how x86 works. The
> > requested 768M goes in the high range if there's not enough low memory
> > and an additional buffer for swiotlb is allocated, hence the low 256M.
>
> I understand, but why 256M (as low) for arm64? x86_64 setups usually
> have more system memory available as compared to several commercially
> available arm64 setups. So is the intent, just to keep the behavior
> similar between arm64 and x86_64?
Similar in the sense of the fallback to high memory and some low memory
allocation but the amounts can vary per architecture.
> Should we have a CONFIG option / bootarg to help one select the max
> 'low_size'? Currently the ' low_size' value is calculated as:
>
> /*
> * two parts from kernel/dma/swiotlb.c:
> * -swiotlb size: user-specified with swiotlb= or default.
> *
> * -swiotlb overflow buffer: now hardcoded to 32k. We round it
> * to 8M for other buffers that may need to stay low too. Also
> * make sure we allocate enough extra low memory so that we
> * don't run out of DMA buffers for 32-bit devices.
> */
> low_size = max(swiotlb_size_or_default() + (8UL << 20), 256UL << 20);
>
> Since many arm64 boards ship with swiotlb=0 (turned off) via kernel
> bootargs, the low_size, still ends up being 256M in such cases,
> whereas this 256M can be used for some other purposes - so should we
> be limiting this to 64M and failing the crash kernel allocation
> request (gracefully) otherwise?
I think it makes sense to set a low_size = 0 if
swiotlb_size_or_default() is 0. The assumption would be that if the main
kernel doesn't need an swiotlb, the crashdump one wouldn't need it
either. But this probably needs the ZONE_DMA for non-RPi4 platforms
addressed as well (expanded to the whole ZONE_DMA32).
--
Catalin
_______________________________________________
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:[~2020-10-07 16:33 UTC|newest]
Thread overview: 108+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-07 13:47 [PATCH v12 0/9] support reserving crashkernel above 4G on arm64 kdump Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` [PATCH v12 1/9] x86: kdump: move CRASH_ALIGN to 2M Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-08 1:21 ` Dave Young
2020-09-08 1:21 ` Dave Young
2020-09-08 1:21 ` Dave Young
2020-09-08 3:19 ` chenzhou
2020-09-08 3:19 ` chenzhou
2020-09-08 3:19 ` chenzhou
2020-09-07 13:47 ` [PATCH v12 2/9] x86: kdump: make the lower bound of crash kernel reservation consistent Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` [PATCH v12 3/9] x86: kdump: use macro CRASH_ADDR_LOW_MAX in functions reserve_crashkernel[_low]() Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-18 3:01 ` Dave Young
2020-09-18 3:01 ` Dave Young
2020-09-18 3:01 ` Dave Young
2020-09-18 3:57 ` chenzhou
2020-09-18 3:57 ` chenzhou
2020-09-18 3:57 ` chenzhou
2020-09-18 5:26 ` Dave Young
2020-09-18 5:26 ` Dave Young
2020-09-18 5:26 ` Dave Young
2020-09-18 7:25 ` Baoquan He
2020-09-18 7:25 ` Baoquan He
2020-09-18 7:25 ` Baoquan He
2020-09-18 8:59 ` chenzhou
2020-09-18 8:59 ` chenzhou
2020-09-18 8:59 ` chenzhou
2020-09-18 9:06 ` chenzhou
2020-09-18 9:06 ` chenzhou
2020-09-18 9:06 ` chenzhou
2020-10-05 17:20 ` Catalin Marinas
2020-10-05 17:20 ` Catalin Marinas
2020-10-05 17:20 ` Catalin Marinas
2020-09-07 13:47 ` [PATCH v12 4/9] x86: kdump: move reserve_crashkernel[_low]() into crash_core.c Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` [PATCH v12 5/9] arm64: kdump: introduce some macroes for crash kernel reservation Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` [PATCH v12 6/9] arm64: kdump: reimplement crashkernel=X Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-10-05 17:16 ` Catalin Marinas
2020-10-05 17:16 ` Catalin Marinas
2020-10-05 17:16 ` Catalin Marinas
2020-10-06 1:30 ` chenzhou
2020-10-06 1:30 ` chenzhou
2020-10-06 1:30 ` chenzhou
2020-09-07 13:47 ` [PATCH v12 7/9] kdump: add threshold for the required memory Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-10-05 17:12 ` Catalin Marinas
2020-10-05 17:12 ` Catalin Marinas
2020-10-05 17:12 ` Catalin Marinas
2020-10-06 1:34 ` chenzhou
2020-10-06 1:34 ` chenzhou
2020-10-06 1:34 ` chenzhou
2020-09-07 13:47 ` [PATCH v12 8/9] arm64: kdump: add memory for devices by DT property linux, usable-memory-range Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` [PATCH v12 8/9] arm64: kdump: add memory for devices by DT property linux,usable-memory-range Chen Zhou
2020-09-07 13:47 ` [PATCH v12 9/9] kdump: update Documentation about crashkernel Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-09-07 13:47 ` Chen Zhou
2020-10-05 17:19 ` Catalin Marinas
2020-10-05 17:19 ` Catalin Marinas
2020-10-05 17:19 ` Catalin Marinas
2020-10-06 2:10 ` chenzhou
2020-10-06 2:10 ` chenzhou
2020-10-06 2:10 ` chenzhou
2020-10-07 16:24 ` Catalin Marinas
2020-10-07 16:24 ` Catalin Marinas
2020-10-07 16:24 ` Catalin Marinas
2020-09-12 11:44 ` [PATCH v12 0/9] support reserving crashkernel above 4G on arm64 kdump John Donnelly
2020-09-12 11:44 ` John Donnelly
2020-09-12 11:44 ` John Donnelly
2020-10-05 17:09 ` Catalin Marinas
2020-10-05 17:09 ` Catalin Marinas
2020-10-05 17:09 ` Catalin Marinas
2020-10-05 17:42 ` Bhupesh Sharma
2020-10-05 17:42 ` Bhupesh Sharma
2020-10-05 17:42 ` Bhupesh Sharma
2020-10-06 1:48 ` chenzhou
2020-10-06 1:48 ` chenzhou
2020-10-06 1:48 ` chenzhou
2020-10-06 18:00 ` Catalin Marinas
2020-10-06 18:00 ` Catalin Marinas
2020-10-06 18:00 ` Catalin Marinas
2020-10-07 7:07 ` Bhupesh Sharma
2020-10-07 7:07 ` Bhupesh Sharma
2020-10-07 7:07 ` Bhupesh Sharma
2020-10-07 16:33 ` Catalin Marinas [this message]
2020-10-07 16:33 ` Catalin Marinas
2020-10-07 16:33 ` Catalin Marinas
2020-10-19 2:43 ` chenzhou
2020-10-19 2:43 ` chenzhou
2020-10-19 2:43 ` chenzhou
2020-09-15 7:16 ` chenzhou
2020-09-15 7:16 ` chenzhou
2020-09-15 7:16 ` chenzhou
2020-09-23 17:47 ` John Donnelly
2020-09-23 17:47 ` John Donnelly
2020-09-23 17:47 ` John Donnelly
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=20201007163319.GS3462@gaia \
--to=catalin.marinas@arm.com \
--cc=arnd@arndb.de \
--cc=bhe@redhat.com \
--cc=bhsharma@redhat.com \
--cc=chenzhou10@huawei.com \
--cc=corbet@lwn.net \
--cc=dyoung@redhat.com \
--cc=guohanjun@huawei.com \
--cc=horms@verge.net.au \
--cc=huawei.libin@huawei.com \
--cc=james.morse@arm.com \
--cc=john.p.donnelly@oracle.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=nsaenzjulienne@suse.de \
--cc=prabhakar.pkin@gmail.com \
--cc=robh+dt@kernel.org \
--cc=tglx@linutronix.de \
--cc=wangkefeng.wang@huawei.com \
--cc=will@kernel.org \
--cc=xiexiuqi@huawei.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.