From: Baoquan He <bhe@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: akpm@linux-foundation.org, catalin.marinas@arm.com,
thunder.leizhen@huawei.com, dyoung@redhat.com, prudo@redhat.com,
samuel.holland@sifive.com, kexec@lists.infradead.org,
linux-arm-kernel@lists.infradead.org, x86@kernel.org,
Baoquan He <bhe@redhat.com>
Subject: [PATCH v2 0/8] kdump: use generic functions to simplify crashkernel reservation in arch
Date: Tue, 29 Aug 2023 20:16:02 +0800 [thread overview]
Message-ID: <20230829121610.138107-1-bhe@redhat.com> (raw)
In the current arm64, crashkernel=,high support has been finished after
several rounds of posting and careful reviewing. The code in arm64 which
parses crashkernel kernel parameters firstly, then reserve memory can be
a good example for other ARCH to refer to.
Whereas in x86_64, the code mixing crashkernel parameter parsing and
memory reserving is twisted, and looks messy. Refactoring the code to
make it more readable maintainable is necessary.
Here, firstly abstract the crashkernel parameter parsing code into
parse_crashkernel() to make it be able to parse crashkernel=,high|low.
Then abstract the crashkernel memory reserving code into a generic
function reserve_crashkernel_generic(). Finally, in ARCH which
crashkernel=,high support is needed, a simple arch_reserve_crashkernel()
can be added to call above two functions. This can remove the duplicated
implmentation code in each ARCH, like arm64, x86_64.
I only change the arm64 and x86_64 implementation to make use of the
generic functions to simplify code. Risc-v can be done very easily refer
to the steps in arm64 and x86_64.
History:
- RFC patchset:
https://lore.kernel.org/all/20230619055951.45620-1-bhe@redhat.com/T/#u
[RFC PATCH 0/4] kdump: add generic functions to simplify crashkernel crashkernel in architecture
Dave and Philipp commented the old parse_crashkernel_common() and
parse_crashkernel_generic() are quite confusing. In this formal post,
I made change to address the concern by unifying all crashkernel
parsing into parse_crashkernel().
v1->v2:
- Change to add asm/crash_core.h into x86 and arm64 to contain those
arch specific macro definitions for generic reservaton. This fixes the
compiling error reported by LKP in v1.
https://lore.kernel.org/all/202308272150.p3kRkMoF-lkp@intel.com/T/#u
- Fix a log typo in patch 8, thanks to Samuel.
Baoquan He (8):
crash_core.c: remove unnecessary parameter of function
crash_core: change the prototype of function parse_crashkernel()
crash_core: change parse_crashkernel() to support
crashkernel=,high|low parsing
crash_core: add generic function to do reservation
crash_core.h: include <asm/crash_core.h> if generic reservation is
needed
x86: kdump: use generic interface to simplify crashkernel reservation
code
arm64: kdump: use generic interface to simplify crashkernel
reservation
crash_core.c: remove unneeded functions
arch/arm/kernel/setup.c | 3 +-
arch/arm64/Kconfig | 3 +
arch/arm64/include/asm/crash_core.h | 10 ++
arch/arm64/mm/init.c | 140 ++--------------------
arch/ia64/kernel/setup.c | 2 +-
arch/loongarch/kernel/setup.c | 4 +-
arch/mips/kernel/setup.c | 3 +-
arch/powerpc/kernel/fadump.c | 2 +-
arch/powerpc/kexec/core.c | 2 +-
arch/powerpc/mm/nohash/kaslr_booke.c | 2 +-
arch/riscv/mm/init.c | 2 +-
arch/s390/kernel/setup.c | 4 +-
arch/sh/kernel/machine_kexec.c | 2 +-
arch/x86/Kconfig | 3 +
arch/x86/include/asm/crash_core.h | 34 ++++++
arch/x86/kernel/setup.c | 143 +++-------------------
include/linux/crash_core.h | 38 +++++-
kernel/crash_core.c | 170 +++++++++++++++++++++++----
18 files changed, 269 insertions(+), 298 deletions(-)
create mode 100644 arch/arm64/include/asm/crash_core.h
create mode 100644 arch/x86/include/asm/crash_core.h
--
2.41.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2023-08-29 12:16 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-29 12:16 Baoquan He [this message]
2023-08-29 12:16 ` [PATCH v2 1/8] crash_core.c: remove unnecessary parameter of function Baoquan He
2023-08-31 1:25 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 2/8] crash_core: change the prototype of function parse_crashkernel() Baoquan He
2023-08-31 2:30 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 3/8] crash_core: change parse_crashkernel() to support crashkernel=,high|low parsing Baoquan He
2023-08-31 2:56 ` Leizhen (ThunderTown)
2023-09-01 9:49 ` Baoquan He
2023-09-04 2:47 ` Leizhen (ThunderTown)
2023-09-05 8:29 ` Baoquan He
2023-09-06 9:07 ` Leizhen (ThunderTown)
2023-09-11 2:11 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 4/8] crash_core: add generic function to do reservation Baoquan He
2023-08-31 3:23 ` Leizhen (ThunderTown)
2023-09-01 10:08 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 5/8] crash_core.h: include <asm/crash_core.h> if generic reservation is needed Baoquan He
2023-08-29 12:16 ` [PATCH v2 6/8] x86: kdump: use generic interface to simplify crashkernel reservation code Baoquan He
2023-08-29 21:37 ` kernel test robot
2023-08-30 1:49 ` kernel test robot
2023-08-30 11:39 ` Baoquan He
2023-08-31 3:43 ` Leizhen (ThunderTown)
2023-09-01 10:10 ` Baoquan He
2023-08-29 12:16 ` [PATCH v2 7/8] arm64: kdump: use generic interface to simplify crashkernel reservation Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
2023-08-29 12:16 ` [PATCH v2 8/8] crash_core.c: remove unneeded functions Baoquan He
2023-08-31 3:51 ` Leizhen (ThunderTown)
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=20230829121610.138107-1-bhe@redhat.com \
--to=bhe@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--cc=dyoung@redhat.com \
--cc=kexec@lists.infradead.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=prudo@redhat.com \
--cc=samuel.holland@sifive.com \
--cc=thunder.leizhen@huawei.com \
--cc=x86@kernel.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 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).