linux-doc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH -next 0/2] support allocating crashkernel above 4G explicitly on riscv
@ 2023-03-20 20:42 Chen Jiahao
  2023-03-20 20:42 ` [PATCH -next 1/2] riscv: kdump: Implement crashkernel=X,[high,low] Chen Jiahao
  2023-03-20 20:42 ` [PATCH -next 2/2] docs: kdump: Update the crashkernel description for riscv Chen Jiahao
  0 siblings, 2 replies; 9+ messages in thread
From: Chen Jiahao @ 2023-03-20 20:42 UTC (permalink / raw)
  To: paul.walmsley, palmer, conor.dooley, guoren, heiko, bjorn, alex,
	akpm, atishp, bhe, thunder.leizhen
  Cc: linux-kernel, linux-riscv, kexec, linux-doc

On riscv, the current crash kernel allocation logic is trying to
allocate within 32bit addressible memory region by default, if
failed, try to allocate without 4G restriction.

In need of saving DMA zone memory while allocating a relatively large
crash kernel region, allocating the reserved memory top down in
high memory, without overlapping the DMA zone, is a mature solution.
Hence this patchset introduces the parameter option crashkernel=X,[high,low].

One can reserve the crash kernel from high memory above DMA zone range
by explicitly passing "crashkernel=X,high"; or reserve a memory range
below 4G with "crashkernel=X,low". Besides, there are few rules need
to take notice:
1. "crashkernel=X,[high,low]" will be ignored if "crashkernel=size"
   is specified.
2. "crashkernel=X,low" is valid only when "crashkernel=X,high" is passed
   and there is enough memory to be allocated under 4G.
3. When allocating crashkernel above 4G and no "crashkernel=X,low" is
   specified, a 128M low memory will be allocated automatically for
   swiotlb bounce buffer.
See Documentation/admin-guide/kernel-parameters.txt for more information.

Following test cases have been performed as expected:
1) crashkernel=256M                          //low=256M
2) crashkernel=1G                            //low=1G
3) crashkernel=4G                            //high=4G, low=128M(default)
4) crashkernel=4G crashkernel=256M,high      //high=4G, low=128M(default), high is ignored
5) crashkernel=4G crashkernel=256M,low       //high=4G, low=128M(default), low is ignored
6) crashkernel=4G,high                       //high=4G, low=128M(default)
7) crashkernel=256M,low                      //low=0M, invalid
8) crashkernel=4G,high crashkernel=256M,low  //high=4G, low=256M
9) crashkernel=4G,high crashkernel=4G,low    //high=0M, low=0M, invalid
10) crashkernel=512M@0xd0000000              //low=512M

Chen Jiahao (2):
  riscv: kdump: Implement crashkernel=X,[high,low]
  docs: kdump: Update the crashkernel description for riscv

 .../admin-guide/kernel-parameters.txt         | 15 ++---
 arch/riscv/kernel/setup.c                     |  5 ++
 arch/riscv/mm/init.c                          | 56 ++++++++++++++++++-
 3 files changed, 66 insertions(+), 10 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2023-03-27 13:11 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-03-20 20:42 [PATCH -next 0/2] support allocating crashkernel above 4G explicitly on riscv Chen Jiahao
2023-03-20 20:42 ` [PATCH -next 1/2] riscv: kdump: Implement crashkernel=X,[high,low] Chen Jiahao
2023-03-20 14:36   ` Simon Horman
2023-03-27 12:50     ` chenjiahao (C)
2023-03-21  1:42   ` Leizhen (ThunderTown)
2023-03-27 12:54     ` chenjiahao (C)
2023-03-20 20:42 ` [PATCH -next 2/2] docs: kdump: Update the crashkernel description for riscv Chen Jiahao
2023-03-20 14:37   ` Simon Horman
2023-03-21  1:45   ` Leizhen (ThunderTown)

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).