[0/2] arm64: kdump: simplify the reservation behaviour of crashkernel=,high

Message ID 20230117034921.185150-1-bhe@redhat.com
Headers
Series arm64: kdump: simplify the reservation behaviour of crashkernel=,high |

Message

Baoquan He Jan. 17, 2023, 3:49 a.m. UTC
  After crashkernel=,high support was added, our QE engineer surprisingly
found the reserved crashkernel high region could cross the high low
memory boundary. E.g on system with 4G as boundary, the crashkernel high
region is [4G-64M, 4G+448M]. After investigation, I noticed on arm64,
the area near 4G is contiguous. Not like x86, its firmware occupies the
cpu address space below 4G. When memblock searches for available memory
region top down, it could find a region across 4G boundary. Finally, we
actually got two memory regions in low memory. This complicates the
crashkernel=,high behaviour, people will be confused by this.

In this patchset, simpliyfy the behaviour of crashkernel=,high. When
trying to reserve memory region for crashkernel high, we only search for
the region in high memory, e.g above 4G. If failed, try searching in low
memory. This makes sure the crashkernel high memory limited in high
memory, confusion is removed.

In patch 2, I add code comment above several crashkernel reservation
case to ease code reading. I put them in a separate patch 2 because I
want the code change in patch 1 to be straightforward and simpler for
reviewing.

Please help review and check if this is helpful and worth.

Baoquan He (2):
  arm64: kdump: simplify the reservation behaviour of crashkernel=,high
  arm64/kdump: add code comments for crashkernel reservation cases

 arch/arm64/mm/init.c | 43 ++++++++++++++++++++++++++++++++++++-------
 1 file changed, 36 insertions(+), 7 deletions(-)