linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Leizhen (ThunderTown)" <thunder.leizhen@huawei.com>
To: Borislav Petkov <bp@alien8.de>
Cc: Dave Young <dyoung@redhat.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>, <x86@kernel.org>,
	"H . Peter Anvin" <hpa@zytor.com>, <linux-kernel@vger.kernel.org>,
	Baoquan He <bhe@redhat.com>, Vivek Goyal <vgoyal@redhat.com>,
	Eric Biederman <ebiederm@xmission.com>,
	<kexec@lists.infradead.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	"Will Deacon" <will@kernel.org>,
	<linux-arm-kernel@lists.infradead.org>,
	Rob Herring <robh+dt@kernel.org>,
	Frank Rowand <frowand.list@gmail.com>,
	<devicetree@vger.kernel.org>, Jonathan Corbet <corbet@lwn.net>,
	<linux-doc@vger.kernel.org>, Randy Dunlap <rdunlap@infradead.org>,
	Feng Zhou <zhoufeng.zf@bytedance.com>,
	Kefeng Wang <wangkefeng.wang@huawei.com>,
	"Chen Zhou" <dingguo.cz@antgroup.com>,
	John Donnelly <John.p.donnelly@oracle.com>
Subject: Re: [PATCH v19 02/13] x86/setup: Use parse_crashkernel_high_low() to simplify code
Date: Thu, 30 Dec 2021 10:39:12 +0800	[thread overview]
Message-ID: <933554c7-1fc6-8e7a-9569-9f8441e50ddf@huawei.com> (raw)
In-Reply-To: <YcySEdyhXysDSKn/@zn.tnic>



On 2021/12/30 0:51, Borislav Petkov wrote:
> On Wed, Dec 29, 2021 at 11:04:21PM +0800, Leizhen (ThunderTown) wrote:
>> Chen Zhou and I tried to share the code because of a suggestion. After so many
>> attempts, it doesn't seem to fit to make generic. Or maybe I haven't figured
>> out a good solution yet.
> 
> Well, you learned a very important lesson and the many attempts are not
> in vain: code sharing does not make sense in every case.
> 
>> I will put the patches that make arm64 support crashkernel...high,low to
>> the front, then the parse_crashkernel() unification patches. Even if the
>> second half of the patches is not ready for v5.18, the first half of the
>> patches is ready.
> 
> I think you should concentrate on the arm64 side which is, AFAICT, what
> you're trying to achieve.

Right, a patchset should focus on just one thing.

> 
> The "parse_crashkernel() unification" needs more thought because, as I
> said already, that doesn't make a whole lot of sense to me.

Yes, because it's not a functional improvement, it's not a performance optimization,
it's also not a fix for a known bug, it's just a programmer's artistic pursuit.

> 
> If you want to enforce the fact that "low" makes sense only when "high"
> is supplied, parse_crashkernel_high_low() is not the right thing to do.
> You need to have a *single* function which does all the parsing where
> you can decide what to do: "if high, parse low", "if no high supplied,
> ignore low" and so on.

I understand your proposal, but parse_crashkernel_high_low() is a cost-effective
and profitable change, it makes the current code a little clearer, and avoid passing
unnecessary parameters "system_ram" and "crash_base" when other architectures use
parse_crashkernel_{high|low}().

I actually followed your advice in the beginning to do "parse_crashkernel() and
parse_crashkernel_{high|low}() unification". But I found it's difficult and the
end result may not be as good as expected. So I introduced parse_crashkernel_high_low().

The parameter "system_ram" and "crash_base" of parse_crashkernel() is not need by
"crashkernel=X,[high,low]". And parameter "low_size" of parse_crashkernel_high_low()
is not need by "crashkernel=X[@offset]". The "parse_crashkernel() unification"
complicates things. For example, the parameter "crash_size" means "low or high" memory
size for "crashkernel=X[@offset]", but only means "high" memory size for "crashkernel=X,high".
So we'd better give it two names with union.

> 
> And if those are supported on certain architectures only, you can do
> ifdeffery...

I don't think so. These __init functions are small and architecture-independent, and do not
affect compilation of other architectures. There may be other architectures that use
it in the future, such as the current arm64.

> 
> But I think I already stated that I don't like such unifications which
> introduce unnecessary dependencies between architectures. Therefore, I
> won't accept them into x86 unless there's a strong compelling reason.
> Which I don't see ATM.

OK.

> 
> Thx.
> 

-- 
Regards,
  Zhen Lei

  reply	other threads:[~2021-12-30  2:39 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-28 13:25 [PATCH v19 00/13] support reserving crashkernel above 4G on arm64 kdump Zhen Lei
2021-12-28 13:26 ` [PATCH v19 01/13] kdump: add helper parse_crashkernel_high_low() Zhen Lei
2021-12-30 10:14   ` Leizhen (ThunderTown)
2021-12-30 10:40     ` Borislav Petkov
2021-12-30 11:08       ` Leizhen (ThunderTown)
2021-12-31  9:22         ` Leizhen (ThunderTown)
2021-12-31 12:29           ` Leizhen (ThunderTown)
2022-01-11 15:03   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 02/13] x86/setup: Use parse_crashkernel_high_low() to simplify code Zhen Lei
2021-12-28 16:13   ` Borislav Petkov
2021-12-29  2:27     ` Leizhen (ThunderTown)
2021-12-29  7:27       ` Dave Young
2021-12-29  7:45         ` Dave Young
2021-12-29 10:11           ` Borislav Petkov
2021-12-29 10:38             ` Dave Young
2021-12-29 11:11               ` Borislav Petkov
2021-12-29 14:13               ` Leizhen (ThunderTown)
2021-12-29 10:03         ` Borislav Petkov
2021-12-29 10:46           ` Dave Young
2021-12-29 15:04             ` Leizhen (ThunderTown)
2021-12-29 16:51               ` Borislav Petkov
2021-12-30  2:39                 ` Leizhen (ThunderTown) [this message]
2021-12-30  8:56                   ` Leizhen (ThunderTown)
2021-12-29 12:19         ` Leizhen (ThunderTown)
2022-01-11 15:04   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 03/13] kdump: make parse_crashkernel_{high|low}() static Zhen Lei
2022-01-11 15:04   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 04/13] kdump: reduce unnecessary parameters of parse_crashkernel_{high|low}() Zhen Lei
2022-01-11 15:05   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 05/13] x86/setup: Add and use CRASH_BASE_ALIGN Zhen Lei
2022-01-11 15:06   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 06/13] kexec: move crashk[_low]_res to crash_core module Zhen Lei
2022-01-11 15:06   ` john.p.donnelly
2021-12-28 13:26 ` [PATCH v19 07/13] kdump: Add helper reserve_crashkernel_mem[_low]() Zhen Lei
2021-12-28 13:26 ` [PATCH v19 08/13] x86/setup: Move CRASH[_BASE]_ALIGN and CRASH_ADDR_{LOW|HIGH}_MAX to asm/kexec.h Zhen Lei
2021-12-28 13:26 ` [PATCH v19 09/13] x86/setup: Use generic reserve_crashkernel_mem[_low]() Zhen Lei
2021-12-28 13:26 ` [PATCH v19 10/13] arm64: kdump: introduce some macros for crash kernel reservation Zhen Lei
2021-12-28 13:26 ` [PATCH v19 11/13] arm64: kdump: reimplement crashkernel=X Zhen Lei
2022-01-12 14:45   ` Dave Kleikamp
2022-01-13  1:17     ` Leizhen (ThunderTown)
2021-12-28 13:26 ` [PATCH v19 12/13] of: fdt: Add memory for devices by DT property "linux,usable-memory-range" Zhen Lei
2021-12-28 13:26 ` [PATCH v19 13/13] kdump: update Documentation about crashkernel Zhen Lei

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=933554c7-1fc6-8e7a-9569-9f8441e50ddf@huawei.com \
    --to=thunder.leizhen@huawei.com \
    --cc=John.p.donnelly@oracle.com \
    --cc=bhe@redhat.com \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=devicetree@vger.kernel.org \
    --cc=dingguo.cz@antgroup.com \
    --cc=dyoung@redhat.com \
    --cc=ebiederm@xmission.com \
    --cc=frowand.list@gmail.com \
    --cc=hpa@zytor.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=rdunlap@infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=vgoyal@redhat.com \
    --cc=wangkefeng.wang@huawei.com \
    --cc=will@kernel.org \
    --cc=x86@kernel.org \
    --cc=zhoufeng.zf@bytedance.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).