Thread (9 messages) 9 messages, 3 authors, 2023-08-27

Re: [RFC PATCH 0/4] kdump: add generic functions to simplify crashkernel crashkernel in architecture

From: Baoquan He <hidden>
Date: 2023-06-19 06:10:56
Also in: kexec, linux-riscv, lkml

On 06/19/23 at 01:59pm, Baoquan He wrote:
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.
                       ^ 'and' missed
Here, try to abstract the crashkernel parameter parsing code into a
generic function parse_crashkernel_generic(), and the crashkernel memory
reserving code into a generic function reserve_crashkernel_generic().
Then, in ARCH which crashkernel=,high support is needed, a simple
arch_reserve_crashkernel() can be added to call above two generic
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. I leave this to Jiahao or other risc-v
developer since Jiahao have posted a patchset to add crashkernel=,high
support to risc-v.

This patchset is based on the latest linus's tree, and on top of below
patch:

arm64: kdump: simplify the reservation behaviour of crashkernel=,high
      https://git.kernel.org/arm64/c/6c4dcaddbd36


Baoquan He (4):
  kdump: rename parse_crashkernel() to parse_crashkernel_common()
  kdump: add generic functions to parse crashkernel and do reservation
  arm64: kdump: use generic interfaces to simplify crashkernel
    reservation code
  x86: kdump: use generic interfaces to simplify crashkernel reservation
    code

 arch/arm/kernel/setup.c              |   4 +-
 arch/arm64/Kconfig                   |   3 +
 arch/arm64/include/asm/kexec.h       |   8 ++
 arch/arm64/mm/init.c                 | 141 ++----------------------
 arch/ia64/kernel/setup.c             |   4 +-
 arch/loongarch/kernel/setup.c        |   3 +-
 arch/mips/cavium-octeon/setup.c      |   2 +-
 arch/mips/kernel/setup.c             |   4 +-
 arch/powerpc/kernel/fadump.c         |   5 +-
 arch/powerpc/kexec/core.c            |   4 +-
 arch/powerpc/mm/nohash/kaslr_booke.c |   4 +-
 arch/riscv/mm/init.c                 |   5 +-
 arch/s390/kernel/setup.c             |   4 +-
 arch/sh/kernel/machine_kexec.c       |   5 +-
 arch/x86/Kconfig                     |   3 +
 arch/x86/include/asm/kexec.h         |  32 ++++++
 arch/x86/kernel/setup.c              | 141 +++---------------------
 include/linux/crash_core.h           |  33 +++++-
 kernel/crash_core.c                  | 158 +++++++++++++++++++++++++--
 19 files changed, 274 insertions(+), 289 deletions(-)

-- 
2.34.1

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help