Re: [PATCH v18 00/15] arm64: MMU enabled kexec relocation
flat view
From: Will Deacon <will@kernel.org>
Date: 2021-10-01 14:01:43
Also in:
kexec, linux-mm, lkml
On Thu, 30 Sep 2021 14:30:58 +0000, Pasha Tatashin wrote:
Changelog: v18: - Addressed comments from Will Deacon - Added Acks from Catalin Marinas v17: - Merged with 5.15-rc1 as requested by Catalin Marinas - Added Tested-by: Pingfan Liu [off-list ref] v16: - Merged with 5.14-rc4 v15: - Changed trans_pgd_copy_el2_vectors() to use vector table that only shared by kexec and hibernate. This way sync does not have dangling branch that was recently introduced. (Reported by Marc Zyngier) - Renamed is_hyp_callable() to is_hyp_nvhe() as requested by Marc Zyngier - Clean-ups, comment fixes. - Sync with upstream 368094df48e680fa51cedb68537408cfa64b788e v14: - Fixed a bug in "arm64: hyp-stub: Move elx_sync into the vectors" that was noticed by Marc Zyngier - Merged with upstream v13: - Fixed a hang on ThunderX2, thank you Pingfan Liu for reporting the problem. In relocation function we need civac not ivac, we need to clean data in addition to invalidating it. Since I was using ThunderX2 machine I also measured the new performance data on this large ARM64 server. The MMU improves kexec relocation 190 times on this machine! (see below for raw data). Saves 7.5s during CentOS kexec reboot. v12: - A major change compared to previous version. Instead of using contiguous VA range a copy of linear map is now used to perform copying of segments during relocation as it was agreed in the discussion of version 11 of this project. - In addition to using linear map, I also took several ideas from James Morse to better organize the kexec relocation: 1. skip relocation function entirely if that is not needed 2. remove the PoC flushing function since it is not needed anymore with MMU enabled. v11: - Fixed missing KEXEC_CORE dependency for trans_pgd.c - Removed useless "if(rc) return rc" statement (thank you Tyler Hicks) - Another 12 patches were accepted into maintainer's get. Re-based patches against: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git Branch: for-next/kexec v10: - Addressed a lot of comments form James Morse and from Marc Zyngier - Added review-by's - Synchronized with mainline [...]
Applied to arm64 (for-next/kexec), thanks!
[01/15] arm64: kernel: add helper for booted at EL2 and not VHE
https://git.kernel.org/arm64/c/094a3684b9b6
[02/15] arm64: trans_pgd: hibernate: Add trans_pgd_copy_el2_vectors
https://git.kernel.org/arm64/c/788bfdd97434
[03/15] arm64: hibernate: abstract ttrb0 setup function
https://git.kernel.org/arm64/c/a347f601452f
[04/15] arm64: kexec: flush image and lists during kexec load time
https://git.kernel.org/arm64/c/0d8732e461d6
[05/15] arm64: kexec: skip relocation code for inplace kexec
https://git.kernel.org/arm64/c/5bb6834fc290
[06/15] arm64: kexec: Use dcache ops macros instead of open-coding
https://git.kernel.org/arm64/c/3036ec599332
[07/15] arm64: kexec: pass kimage as the only argument to relocation function
https://git.kernel.org/arm64/c/878fdbd70486
[08/15] arm64: kexec: configure EL2 vectors for kexec
https://git.kernel.org/arm64/c/08eae0ef618f
[09/15] arm64: kexec: relocate in EL1 mode
https://git.kernel.org/arm64/c/ba959fe96a1b
[10/15] arm64: kexec: use ld script for relocation function
https://git.kernel.org/arm64/c/19a046f07ce5
[11/15] arm64: kexec: install a copy of the linear-map
https://git.kernel.org/arm64/c/3744b5280e67
[12/15] arm64: kexec: keep MMU enabled during kexec relocation
https://git.kernel.org/arm64/c/efc2d0f20a9d
[13/15] arm64: kexec: remove the pre-kexec PoC maintenance
https://git.kernel.org/arm64/c/939f1b9564c6
[14/15] arm64: kexec: remove cpu-reset.h
https://git.kernel.org/arm64/c/7a2512fa6493
[15/15] arm64: trans_pgd: remove trans_pgd_map_page()
https://git.kernel.org/arm64/c/6091dd9eaf8e
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel