[PATCH 0/3] arm64: kdump: Restore the write protection for the crashkernel memory region

From: thunder . leizhen
Date: Fri Jul 21 2023 - 04:21:34 EST


From: Zhen Lei <thunder.leizhen@xxxxxxxxxx>

Unlike in the past, the low memory allocation direction of the crashkernel is
changed from top-down to bottom-up. As long as the DMA zone has sufficient
continuous free memory, the allocated crashkernel low memory must meet the
requirements. The allocation direction of crashkernel high memory remains
unchanged, that is, top-down. As long as the high memory(above DMA zone) has
sufficient continuous free memory, the allocated crashkernel high memory must
meet the requirements. In this way, with the restoration of the original
page-level mapping and the implementation of the arch_kexec_protect_crashkres()
function, write protection for the crashkernel memory region can be supported.

Of course, if the high memory or low memory cannot meet the initial requirements,
that is, fall back is required. In this case, write protection is not supported
because the newly allocated memory is not page-level mapped.

Because the original retry process is eliminated, the new process looks clearer
and is a simple sequential flow.


Zhen Lei (3):
arm64: kdump: Allocate crash low memory in the bottom-up direction
arm64: kdump: use page-level mapping for crashkernel region
arm64: kdump: add support access protection for crashkernel region

arch/arm64/include/asm/kexec.h | 8 ++
arch/arm64/kernel/machine_kexec.c | 26 ++++
arch/arm64/mm/init.c | 216 +++++++++++++++++++++++-------
arch/arm64/mm/mmu.c | 21 +++
4 files changed, 219 insertions(+), 52 deletions(-)

--
2.25.1