linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: Chen Zhou <chenzhou10@huawei.com>,
	mingo@redhat.com, tglx@linutronix.de, rppt@kernel.org,
	dyoung@redhat.com, will@kernel.org, nsaenzjulienne@suse.de,
	corbet@lwn.net, John.P.donnelly@oracle.com,
	prabhakar.pkin@gmail.com, horms@verge.net.au, robh+dt@kernel.org,
	arnd@arndb.de, james.morse@arm.com, xiexiuqi@huawei.com,
	guohanjun@huawei.com, huawei.libin@huawei.com,
	wangkefeng.wang@huawei.com, linux-doc@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kexec@lists.infradead.org
Subject: Re: [PATCH v14 02/11] x86: kdump: make the lower bound of crash kernel reservation consistent
Date: Thu, 25 Feb 2021 23:44:46 +0800	[thread overview]
Message-ID: <20210225154446.GI3553@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20210225144237.GA23418@arm.com>

On 02/25/21 at 02:42pm, Catalin Marinas wrote:
> On Thu, Feb 25, 2021 at 03:08:46PM +0800, Baoquan He wrote:
> > On 02/24/21 at 02:35pm, Catalin Marinas wrote:
> > > On Sat, Jan 30, 2021 at 03:10:16PM +0800, Chen Zhou wrote:
> > > > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> > > > index da769845597d..27470479e4a3 100644
> > > > --- a/arch/x86/kernel/setup.c
> > > > +++ b/arch/x86/kernel/setup.c
> > > > @@ -439,7 +439,8 @@ static int __init reserve_crashkernel_low(void)
> > > >  			return 0;
> > > >  	}
> > > >  
> > > > -	low_base = memblock_phys_alloc_range(low_size, CRASH_ALIGN, 0, CRASH_ADDR_LOW_MAX);
> > > > +	low_base = memblock_phys_alloc_range(low_size, CRASH_ALIGN, CRASH_ALIGN,
> > > > +			CRASH_ADDR_LOW_MAX);
> > > >  	if (!low_base) {
> > > >  		pr_err("Cannot reserve %ldMB crashkernel low memory, please try smaller size.\n",
> > > >  		       (unsigned long)(low_size >> 20));
> > > 
> > > Is there any reason why the lower bound can't be 0 in all low cases
> > > here? (Sorry if it's been already discussed, I lost track)
> > 
> > Seems like a good question.
> > 
> > This reserve_crashkernel_low(), paired with reserve_crashkernel_high(), is
> > used to reserve memory under 4G so that kdump kernel owns memory for dma
> > buffer allocation. In that case, kernel usually is loaded in high
> > memory. In x86_64, kernel loading need be aligned to 16M because of
> > CONFIG_PHYSICAL_START, please see commit 32105f7fd8faa7b ("x86: find
> > offset for crashkernel reservation automatically"). But for crashkernel
> > low memory, there seems to be no reason to ask for 16M alignment, if
> > it's taken as dma buffer memory.
> > 
> > So we can make a different alignment for low memory only, e.g 2M. But
> > 16M alignment consistent with crashkernel,high is also fine to me. The
> > only affect is smaller alignment can increase the possibility of
> > crashkernel low reservation.
> 
> I don't mind the 16M alignment in both low and high base. But is there
> any reason that the lower bound (third argument) cannot be 0 in both
> reserve_crashkernel() (the low attempt) and reserve_crashkernel_low()
> cases? The comment in reserve_crashkernel() only talks about the 4G
> upper bound but not why we need a 16M lower bound.

Ah, sorry, I must have mixed this one with the alignment of fixed
memory region reservation in patch 1 when considering comments.

Hmm, in x86 we always have memory reserved in low 1M, lower bound
being 0 or 16M (kernel alignment) doesn't make difference on crashkernel
low reservation. But for crashkernel reservation, the reason should be
kernel loading alignment being 16M, please see commit 32105f7fd8faa7b
("x86: find offset for crashkernel reservation automatically").

So, for crashkernel low, keeping lower bound as 0 looks good to me, the
only reason is just as patch log tells. And it can skip the unnecessary
memblock searching under 16M since it will always fail, even though it
won't matter much. Or changing it to CRASH_ALIGN as this patch is doing,
and adding code comment, is also fine to me.

Thanks
Baoquan


  reply	other threads:[~2021-02-25 15:47 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-30  7:10 [PATCH v14 00/11] support reserving crashkernel above 4G on arm64 kdump Chen Zhou
2021-01-30  7:10 ` [PATCH v14 01/11] x86: kdump: replace the hard-coded alignment with macro CRASH_ALIGN Chen Zhou
2021-02-18  3:29   ` Baoquan He
2021-02-24 14:19   ` Catalin Marinas
2021-02-25  7:25     ` Baoquan He
2021-02-26  6:45       ` chenzhou
2021-02-26 15:38         ` Eric W. Biederman
2021-03-02  7:43           ` Baoquan He
2021-03-29  2:34             ` chenzhou
2021-01-30  7:10 ` [PATCH v14 02/11] x86: kdump: make the lower bound of crash kernel reservation consistent Chen Zhou
2021-02-18  3:33   ` Baoquan He
2021-02-24 14:35   ` Catalin Marinas
2021-02-25  7:08     ` Baoquan He
2021-02-25 14:42       ` Catalin Marinas
2021-02-25 15:44         ` Baoquan He [this message]
2021-02-26  7:32           ` chenzhou
2021-01-30  7:10 ` [PATCH v14 03/11] x86: kdump: use macro CRASH_ADDR_LOW_MAX in functions reserve_crashkernel() Chen Zhou
2021-02-18  8:23   ` Baoquan He
2021-01-30  7:10 ` [PATCH v14 04/11] x86: kdump: move xen_pv_domain() check and insert_resource() to setup_arch() Chen Zhou
2021-02-18  4:14   ` Baoquan He
2021-01-30  7:10 ` [PATCH v14 05/11] x86: kdump: move reserve_crashkernel[_low]() into crash_core.c Chen Zhou
2021-01-30  7:10 ` [PATCH v14 06/11] x86/elf: Move vmcore_elf_check_arch_cross to arch/x86/include/asm/elf.h Chen Zhou
2021-02-18  6:31   ` Baoquan He
2021-02-18  7:05     ` chenzhou
2021-01-30  7:10 ` [PATCH v14 07/11] arm64: kdump: introduce some macroes for crash kernel reservation Chen Zhou
2021-02-04 16:20   ` Nicolas Saenz Julienne
2021-02-04 16:27     ` Nicolas Saenz Julienne
2021-01-30  7:10 ` [PATCH v14 08/11] arm64: kdump: reimplement crashkernel=X Chen Zhou
2021-02-24 16:04   ` Catalin Marinas
2021-02-26 10:31     ` chenzhou
2021-02-26 10:43       ` chenzhou
2021-01-30  7:10 ` [PATCH v14 09/11] x86, arm64: Add ARCH_WANT_RESERVE_CRASH_KERNEL config Chen Zhou
2021-02-18  7:31   ` Baoquan He
2021-02-18  7:40     ` Baoquan He
2021-02-18  8:35   ` Baoquan He
2021-02-20  3:22     ` chenzhou
2021-01-30  7:10 ` [PATCH v14 10/11] arm64: kdump: add memory for devices by DT property linux,usable-memory-range Chen Zhou
2021-01-30  7:10 ` [PATCH v14 11/11] kdump: update Documentation about crashkernel Chen Zhou
2021-01-30 17:53   ` Randy Dunlap
2021-02-04  1:53     ` chenzhou
2021-02-18  8:40   ` Baoquan He
2021-02-20  3:25     ` chenzhou
2021-02-08  6:46 ` [PATCH v14 00/11] support reserving crashkernel above 4G on arm64 kdump chenzhou

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=20210225154446.GI3553@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=John.P.donnelly@oracle.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.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=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=rppt@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).