lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Mon, 19 Jun 2023 13:59:47 +0800
From:   Baoquan He <bhe@...hat.com>
To:     linux-kernel@...r.kernel.org
Cc:     catalin.marinas@....com, thunder.leizhen@...wei.com,
        John.p.donnelly@...cle.com, kexec@...ts.infradead.org,
        linux-arm-kernel@...ts.infradead.org, horms@...nel.org,
        chenjiahao16@...wei.com, linux-riscv@...ts.infradead.org,
        x86@...nel.org, bp@...en8.de, Baoquan He <bhe@...hat.com>
Subject: [RFC PATCH 0/4] kdump: add generic functions to simplify crashkernel crashkernel in architecture

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, 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ