[RFC v1 0/4] arm64: MMU enabled kexec kernel relocation

From: Pavel Tatashin
Date: Tue Jul 16 2019 - 12:56:47 EST

Added identity mapped page table, and keep MMU enabled while
kernel is being relocated from sparse pages to the final
destination during kexec.

More description about the problem I am trying to solve here, can be
found here:

This patch series works in terms, that I can kexec-reboot both in QEMU
and on a physical machine. However, I do not see performance improvement
during relocation. The performance is just as slow as before with disabled

Am I missing something? Perhaps, there is some flag that I should also
enable in page table? Please provide me with any suggestions.

Pavel Tatashin (4):
arm64, mm: identity mapped page table
arm64, kexec: interface preparation for mmu enabled kexec
arm64, kexec: add kexec's own identity page table
arm64: Keep MMU on while kernel is being relocated

arch/arm64/include/asm/ident_map.h | 26 ++++++
arch/arm64/include/asm/kexec.h | 5 +-
arch/arm64/kernel/cpu-reset.S | 8 --
arch/arm64/kernel/cpu-reset.h | 7 +-
arch/arm64/kernel/machine_kexec.c | 128 +++++++++++++++++++++-------
arch/arm64/kernel/relocate_kernel.S | 36 +++++---
arch/arm64/mm/Makefile | 1 +
arch/arm64/mm/ident_map.c | 99 +++++++++++++++++++++
8 files changed, 255 insertions(+), 55 deletions(-)
create mode 100644 arch/arm64/include/asm/ident_map.h
create mode 100644 arch/arm64/mm/ident_map.c