All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>,
	chenzhou <chenzhou10@huawei.com>
Cc: Catalin Marinas <catalin.marinas@arm.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 01/11] x86: kdump: replace the hard-coded alignment with macro CRASH_ALIGN
Date: Tue, 2 Mar 2021 15:43:27 +0800	[thread overview]
Message-ID: <20210302074327.GC13714@MiWiFi-R3L-srv> (raw)
In-Reply-To: <m14khykfeq.fsf@fess.ebiederm.org>

On 02/26/21 at 09:38am, Eric W. Biederman wrote:
> chenzhou <chenzhou10@huawei.com> writes:
> 
> > On 2021/2/25 15:25, Baoquan He wrote:
> >> On 02/24/21 at 02:19pm, Catalin Marinas wrote:
> >>> On Sat, Jan 30, 2021 at 03:10:15PM +0800, Chen Zhou wrote:
> >>>> Move CRASH_ALIGN to header asm/kexec.h for later use. Besides, the
> >>>> alignment of crash kernel regions in x86 is 16M(CRASH_ALIGN), but
> >>>> function reserve_crashkernel() also used 1M alignment. So just
> >>>> replace hard-coded alignment 1M with macro CRASH_ALIGN.
> >>> [...]
> >>>> @@ -510,7 +507,7 @@ static void __init reserve_crashkernel(void)
> >>>>  	} else {
> >>>>  		unsigned long long start;
> >>>>  
> >>>> -		start = memblock_phys_alloc_range(crash_size, SZ_1M, crash_base,
> >>>> +		start = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, crash_base,
> >>>>  						  crash_base + crash_size);
> >>>>  		if (start != crash_base) {
> >>>>  			pr_info("crashkernel reservation failed - memory is in use.\n");
> >>> There is a small functional change here for x86. Prior to this patch,
> >>> crash_base passed by the user on the command line is allowed to be 1MB
> >>> aligned. With this patch, such reservation will fail.
> >>>
> >>> Is the current behaviour a bug in the current x86 code or it does allow
> >>> 1MB-aligned reservations?
> >> Hmm, you are right. Here we should keep 1MB alignment as is because
> >> users specify the address and size, their intention should be respected.
> >> The 1MB alignment for fixed memory region reservation was introduced in
> >> below commit, but it doesn't tell what is Eric's request at that time, I
> >> guess it meant respecting users' specifying.
> 
> 
> > I think we could make the alignment unified. Why is the alignment system reserved and
> > user specified different? Besides, there is no document about the 1MB alignment.
> > How about adding the alignment size(16MB) in doc  if user specified
> > start address as arm64 does.
> 
> Looking at what the code is doing.  Attempting to reserve a crash region
> at the location the user specified.  Adding unnecessary alignment
> constraints is totally broken. 
> 
> I am not even certain enforcing a 1MB alignment makes sense.  I suspect
> it was added so that we don't accidentally reserve low memory on x86.
> Frankly I am not even certain that makes sense.
> 
> Now in practice there might be an argument for 2MB alignment that goes
> with huge page sizes on x86.  But until someone finds that there are
> actual problems with 1MB alignment I would not touch it.
> 
> The proper response to something that isn't documented and confusing is
> not to arbitrarily change it and risk breaking users.  Especially in
> this case where it is clear that adding additional alignment is total
> nonsense.  The proper response to something that isn't clear and
> documented is to dig in and document it, or to leave it alone and let it

Sounds reasonable. Then adding document or code comment around looks
like a good way to go further so that people can easily get why its
alignment is different than other reservation.

> be the next persons problem.
> 
> In this case there is no reason for changing this bit of code.
> All CRASH_ALIGN is about is a default alignment when none is specified.
> It is not a functional requirement but just something so that things
> come out nicely.
> 
> 
> Eric
> 


WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>,
	chenzhou <chenzhou10@huawei.com>
Cc: wangkefeng.wang@huawei.com, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	huawei.libin@huawei.com, guohanjun@huawei.com, will@kernel.org,
	corbet@lwn.net, mingo@redhat.com, dyoung@redhat.com,
	John.P.donnelly@oracle.com, arnd@arndb.de, xiexiuqi@huawei.com,
	horms@verge.net.au, tglx@linutronix.de,
	linux-arm-kernel@lists.infradead.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, robh+dt@kernel.org,
	james.morse@arm.com, rppt@kernel.org, prabhakar.pkin@gmail.com,
	nsaenzjulienne@suse.de
Subject: Re: [PATCH v14 01/11] x86: kdump: replace the hard-coded alignment with macro CRASH_ALIGN
Date: Tue, 2 Mar 2021 15:43:27 +0800	[thread overview]
Message-ID: <20210302074327.GC13714@MiWiFi-R3L-srv> (raw)
In-Reply-To: <m14khykfeq.fsf@fess.ebiederm.org>

On 02/26/21 at 09:38am, Eric W. Biederman wrote:
> chenzhou <chenzhou10@huawei.com> writes:
> 
> > On 2021/2/25 15:25, Baoquan He wrote:
> >> On 02/24/21 at 02:19pm, Catalin Marinas wrote:
> >>> On Sat, Jan 30, 2021 at 03:10:15PM +0800, Chen Zhou wrote:
> >>>> Move CRASH_ALIGN to header asm/kexec.h for later use. Besides, the
> >>>> alignment of crash kernel regions in x86 is 16M(CRASH_ALIGN), but
> >>>> function reserve_crashkernel() also used 1M alignment. So just
> >>>> replace hard-coded alignment 1M with macro CRASH_ALIGN.
> >>> [...]
> >>>> @@ -510,7 +507,7 @@ static void __init reserve_crashkernel(void)
> >>>>  	} else {
> >>>>  		unsigned long long start;
> >>>>  
> >>>> -		start = memblock_phys_alloc_range(crash_size, SZ_1M, crash_base,
> >>>> +		start = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, crash_base,
> >>>>  						  crash_base + crash_size);
> >>>>  		if (start != crash_base) {
> >>>>  			pr_info("crashkernel reservation failed - memory is in use.\n");
> >>> There is a small functional change here for x86. Prior to this patch,
> >>> crash_base passed by the user on the command line is allowed to be 1MB
> >>> aligned. With this patch, such reservation will fail.
> >>>
> >>> Is the current behaviour a bug in the current x86 code or it does allow
> >>> 1MB-aligned reservations?
> >> Hmm, you are right. Here we should keep 1MB alignment as is because
> >> users specify the address and size, their intention should be respected.
> >> The 1MB alignment for fixed memory region reservation was introduced in
> >> below commit, but it doesn't tell what is Eric's request at that time, I
> >> guess it meant respecting users' specifying.
> 
> 
> > I think we could make the alignment unified. Why is the alignment system reserved and
> > user specified different? Besides, there is no document about the 1MB alignment.
> > How about adding the alignment size(16MB) in doc  if user specified
> > start address as arm64 does.
> 
> Looking at what the code is doing.  Attempting to reserve a crash region
> at the location the user specified.  Adding unnecessary alignment
> constraints is totally broken. 
> 
> I am not even certain enforcing a 1MB alignment makes sense.  I suspect
> it was added so that we don't accidentally reserve low memory on x86.
> Frankly I am not even certain that makes sense.
> 
> Now in practice there might be an argument for 2MB alignment that goes
> with huge page sizes on x86.  But until someone finds that there are
> actual problems with 1MB alignment I would not touch it.
> 
> The proper response to something that isn't documented and confusing is
> not to arbitrarily change it and risk breaking users.  Especially in
> this case where it is clear that adding additional alignment is total
> nonsense.  The proper response to something that isn't clear and
> documented is to dig in and document it, or to leave it alone and let it

Sounds reasonable. Then adding document or code comment around looks
like a good way to go further so that people can easily get why its
alignment is different than other reservation.

> be the next persons problem.
> 
> In this case there is no reason for changing this bit of code.
> All CRASH_ALIGN is about is a default alignment when none is specified.
> It is not a functional requirement but just something so that things
> come out nicely.
> 
> 
> Eric
> 


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Baoquan He <bhe@redhat.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>,
	chenzhou <chenzhou10@huawei.com>
Cc: wangkefeng.wang@huawei.com, linux-doc@vger.kernel.org,
	Catalin Marinas <catalin.marinas@arm.com>,
	huawei.libin@huawei.com, guohanjun@huawei.com, will@kernel.org,
	corbet@lwn.net, mingo@redhat.com, dyoung@redhat.com,
	John.P.donnelly@oracle.com, arnd@arndb.de, xiexiuqi@huawei.com,
	horms@verge.net.au, tglx@linutronix.de,
	linux-arm-kernel@lists.infradead.org, kexec@lists.infradead.org,
	linux-kernel@vger.kernel.org, robh+dt@kernel.org,
	james.morse@arm.com, rppt@kernel.org, prabhakar.pkin@gmail.com,
	nsaenzjulienne@suse.de
Subject: Re: [PATCH v14 01/11] x86: kdump: replace the hard-coded alignment with macro CRASH_ALIGN
Date: Tue, 2 Mar 2021 15:43:27 +0800	[thread overview]
Message-ID: <20210302074327.GC13714@MiWiFi-R3L-srv> (raw)
In-Reply-To: <m14khykfeq.fsf@fess.ebiederm.org>

On 02/26/21 at 09:38am, Eric W. Biederman wrote:
> chenzhou <chenzhou10@huawei.com> writes:
> 
> > On 2021/2/25 15:25, Baoquan He wrote:
> >> On 02/24/21 at 02:19pm, Catalin Marinas wrote:
> >>> On Sat, Jan 30, 2021 at 03:10:15PM +0800, Chen Zhou wrote:
> >>>> Move CRASH_ALIGN to header asm/kexec.h for later use. Besides, the
> >>>> alignment of crash kernel regions in x86 is 16M(CRASH_ALIGN), but
> >>>> function reserve_crashkernel() also used 1M alignment. So just
> >>>> replace hard-coded alignment 1M with macro CRASH_ALIGN.
> >>> [...]
> >>>> @@ -510,7 +507,7 @@ static void __init reserve_crashkernel(void)
> >>>>  	} else {
> >>>>  		unsigned long long start;
> >>>>  
> >>>> -		start = memblock_phys_alloc_range(crash_size, SZ_1M, crash_base,
> >>>> +		start = memblock_phys_alloc_range(crash_size, CRASH_ALIGN, crash_base,
> >>>>  						  crash_base + crash_size);
> >>>>  		if (start != crash_base) {
> >>>>  			pr_info("crashkernel reservation failed - memory is in use.\n");
> >>> There is a small functional change here for x86. Prior to this patch,
> >>> crash_base passed by the user on the command line is allowed to be 1MB
> >>> aligned. With this patch, such reservation will fail.
> >>>
> >>> Is the current behaviour a bug in the current x86 code or it does allow
> >>> 1MB-aligned reservations?
> >> Hmm, you are right. Here we should keep 1MB alignment as is because
> >> users specify the address and size, their intention should be respected.
> >> The 1MB alignment for fixed memory region reservation was introduced in
> >> below commit, but it doesn't tell what is Eric's request at that time, I
> >> guess it meant respecting users' specifying.
> 
> 
> > I think we could make the alignment unified. Why is the alignment system reserved and
> > user specified different? Besides, there is no document about the 1MB alignment.
> > How about adding the alignment size(16MB) in doc  if user specified
> > start address as arm64 does.
> 
> Looking at what the code is doing.  Attempting to reserve a crash region
> at the location the user specified.  Adding unnecessary alignment
> constraints is totally broken. 
> 
> I am not even certain enforcing a 1MB alignment makes sense.  I suspect
> it was added so that we don't accidentally reserve low memory on x86.
> Frankly I am not even certain that makes sense.
> 
> Now in practice there might be an argument for 2MB alignment that goes
> with huge page sizes on x86.  But until someone finds that there are
> actual problems with 1MB alignment I would not touch it.
> 
> The proper response to something that isn't documented and confusing is
> not to arbitrarily change it and risk breaking users.  Especially in
> this case where it is clear that adding additional alignment is total
> nonsense.  The proper response to something that isn't clear and
> documented is to dig in and document it, or to leave it alone and let it

Sounds reasonable. Then adding document or code comment around looks
like a good way to go further so that people can easily get why its
alignment is different than other reservation.

> be the next persons problem.
> 
> In this case there is no reason for changing this bit of code.
> All CRASH_ALIGN is about is a default alignment when none is specified.
> It is not a functional requirement but just something so that things
> come out nicely.
> 
> 
> Eric
> 


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

  reply	other threads:[~2021-03-02  8:39 UTC|newest]

Thread overview: 126+ 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 ` Chen Zhou
2021-01-30  7:10 ` 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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  3:29   ` Baoquan He
2021-02-18  3:29     ` Baoquan He
2021-02-24 14:19   ` Catalin Marinas
2021-02-24 14:19     ` Catalin Marinas
2021-02-24 14:19     ` Catalin Marinas
2021-02-25  7:25     ` Baoquan He
2021-02-25  7:25       ` Baoquan He
2021-02-25  7:25       ` Baoquan He
2021-02-26  6:45       ` chenzhou
2021-02-26  6:45         ` chenzhou
2021-02-26  6:45         ` chenzhou
2021-02-26 15:38         ` Eric W. Biederman
2021-02-26 15:38           ` Eric W. Biederman
2021-02-26 15:38           ` Eric W. Biederman
2021-03-02  7:43           ` Baoquan He [this message]
2021-03-02  7:43             ` Baoquan He
2021-03-02  7:43             ` Baoquan He
2021-03-29  2:34             ` chenzhou
2021-03-29  2:34               ` chenzhou
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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  3:33   ` Baoquan He
2021-02-18  3:33     ` Baoquan He
2021-02-24 14:35   ` Catalin Marinas
2021-02-24 14:35     ` Catalin Marinas
2021-02-24 14:35     ` Catalin Marinas
2021-02-25  7:08     ` Baoquan He
2021-02-25  7:08       ` Baoquan He
2021-02-25  7:08       ` Baoquan He
2021-02-25 14:42       ` Catalin Marinas
2021-02-25 14:42         ` Catalin Marinas
2021-02-25 14:42         ` Catalin Marinas
2021-02-25 15:44         ` Baoquan He
2021-02-25 15:44           ` Baoquan He
2021-02-25 15:44           ` Baoquan He
2021-02-26  7:32           ` chenzhou
2021-02-26  7:32             ` chenzhou
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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  8:23   ` Baoquan He
2021-02-18  8:23     ` Baoquan He
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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  4:14   ` Baoquan He
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   ` Chen Zhou
2021-01-30  7:10   ` 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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  6:31   ` Baoquan He
2021-02-18  6:31     ` Baoquan He
2021-02-18  6:31     ` Baoquan He
2021-02-18  7:05     ` chenzhou
2021-02-18  7:05       ` chenzhou
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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-04 16:20   ` Nicolas Saenz Julienne
2021-02-04 16:20     ` Nicolas Saenz Julienne
2021-02-04 16:20     ` Nicolas Saenz Julienne
2021-02-04 16:27     ` Nicolas Saenz Julienne
2021-02-04 16:27       ` 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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-24 16:04   ` Catalin Marinas
2021-02-24 16:04     ` Catalin Marinas
2021-02-24 16:04     ` Catalin Marinas
2021-02-26 10:31     ` chenzhou
2021-02-26 10:31       ` chenzhou
2021-02-26 10:31       ` chenzhou
2021-02-26 10:43       ` chenzhou
2021-02-26 10:43         ` 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-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-02-18  7:31   ` Baoquan He
2021-02-18  7:31     ` Baoquan He
2021-02-18  7:31     ` Baoquan He
2021-02-18  7:40     ` Baoquan He
2021-02-18  7:40       ` Baoquan He
2021-02-18  7:40       ` Baoquan He
2021-02-18  8:35   ` Baoquan He
2021-02-18  8:35     ` Baoquan He
2021-02-18  8:35     ` Baoquan He
2021-02-20  3:22     ` chenzhou
2021-02-20  3:22       ` chenzhou
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 10/11] arm64: kdump: add memory for devices by DT property linux, usable-memory-range Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-01-30  7:10 ` [PATCH v14 11/11] kdump: update Documentation about crashkernel Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-01-30  7:10   ` Chen Zhou
2021-01-30 17:53   ` Randy Dunlap
2021-01-30 17:53     ` Randy Dunlap
2021-01-30 17:53     ` Randy Dunlap
2021-02-04  1:53     ` chenzhou
2021-02-04  1:53       ` chenzhou
2021-02-04  1:53       ` chenzhou
2021-02-18  8:40   ` Baoquan He
2021-02-18  8:40     ` Baoquan He
2021-02-18  8:40     ` Baoquan He
2021-02-20  3:25     ` chenzhou
2021-02-20  3:25       ` chenzhou
2021-02-20  3:25       ` chenzhou
2021-02-08  6:46 ` [PATCH v14 00/11] support reserving crashkernel above 4G on arm64 kdump chenzhou
2021-02-08  6:46   ` chenzhou
2021-02-08  6:46   ` 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=20210302074327.GC13714@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=ebiederm@xmission.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 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.