[PATCH 0/4] powerpc/kdump: Support high crashkernel reservation

Sourabh Jain sourabhjain at linux.ibm.com
Tue Oct 28 02:13:34 AEDT 2025


Add support for reserving crashkernel memory in higher address ranges
using the crashkernel=xxM,high command-line option.

With this feature, most of the crashkernel memory for kdump will be
reserved in high memory regions, while only a small portion (64 MB) will
be reserved in low memory for the kdump kernel. This helps free up low
memory for other components that require allocations in that region.

For example, if crashkernel=2G,high is specified, the kernel will reserve
2 GB of crashkernel memory near the end of system RAM and an additional
64 MB of low memory (below 1 GB) for RTAS to function properly.

Currently, this feature is supported only on PPC64 systems with 64-bit
RTAS instantiation and Radix MMU enabled.

Two critical changes were made to support this feature:

 - CPU feature discovery is now performed before crashkernel
   reservation. This ensures the MMU type is determined before reserving
   crashkernel memory. (Patch 01/04)

 - RTAS instantiation has been moved to 64-bit mode. (Patch 02/04)

Apply the following patch first, and then apply this patch series:
https://lore.kernel.org/all/20251024170118.297472-1-sourabhjain@linux.ibm.com/

Cc: Baoquan he <bhe at redhat.com>
Cc: Hari Bathini <hbathini at linux.ibm.com>
Cc: Madhavan Srinivasan <maddy at linux.ibm.com>
Cc: Mahesh Salgaonkar <mahesh at linux.ibm.com>
Cc: Michael Ellerman <mpe at ellerman.id.au>
Cc: Ritesh Harjani (IBM) <ritesh.list at gmail.com>
Cc: Shivang Upadhyay <shivangu at linux.ibm.com>

Sourabh Jain (4):
  powerpc/mmu: do MMU type discovery before crashkernel reservation
  powerpc: move to 64-bit RTAS
  powerpc/kdump: consider high crashkernel memory if enabled
  powerpc/kdump: add support for high crashkernel reservation

 arch/powerpc/include/asm/book3s/64/mmu.h |  1 +
 arch/powerpc/include/asm/crash_reserve.h |  8 +++++
 arch/powerpc/include/asm/kexec.h         |  1 +
 arch/powerpc/include/asm/mmu.h           |  1 +
 arch/powerpc/include/asm/rtas.h          | 11 ++++++
 arch/powerpc/kernel/prom.c               | 28 ++++++++-------
 arch/powerpc/kernel/prom_init.c          | 26 +++++++++++---
 arch/powerpc/kernel/rtas.c               |  5 +++
 arch/powerpc/kernel/rtas_entry.S         | 17 ++++++++-
 arch/powerpc/kexec/core.c                | 45 +++++++++++++++++-------
 arch/powerpc/kexec/elf_64.c              | 10 ++++--
 arch/powerpc/kexec/file_load_64.c        |  5 +--
 arch/powerpc/kexec/ranges.c              | 24 +++++++++++--
 arch/powerpc/mm/init_64.c                | 27 ++++++++------
 14 files changed, 161 insertions(+), 48 deletions(-)

-- 
2.51.0



More information about the Linuxppc-dev mailing list