Re: [PATCH v3 0/3] arm64: mm: Do not defer reserve_crashkernel()

From: Kefeng Wang
Date: Wed Apr 27 2022 - 08:41:52 EST


Hi Catalin and Will, any comments, thanks.

On 2022/4/11 17:24, Kefeng Wang wrote:
Commit 031495635b46 ("arm64: Do not defer reserve_crashkernel() for
platforms with no DMA memory zones"), this lets the kernel benifit
due to BLOCK_MAPPINGS, we could do more if ZONE_DMA and ZONE_DMA32
enabled.

1) Don't defer reserve_crashkernel() if only ZONE_DMA32
2) Don't defer reserve_crashkernel() if ZONE_DMA with dma_force_32bit
kernel parameter(newly added)

Here is another case to show the benefit of the block mapping.

Unixbench benchmark result shows between the block mapping and page mapping.
----------------+------------------+-------------------
| block mapping | page mapping
----------------+------------------+-------------------
Process Creation| 5,030.7 | 4,711.8
(in unixbench) | |
----------------+------------------+-------------------

note: RODATA_FULL_DEFAULT_ENABLED is not enabled

v3:
- renaming crashkernel_could_early_reserve() to crashkernel_early_reserve()
- drop dma32_phys_limit, directly use max_zone_phys(32)
- fix no previous prototype issue
- add RB of Vijay to patch2/3
v2 resend:
- fix build error reported-by lkp
v2:
- update patch1 according to Vijay and Florian, and RB of Vijay
- add new patch2

Kefeng Wang (3):
arm64: mm: Do not defer reserve_crashkernel() if only ZONE_DMA32
arm64: mm: Don't defer reserve_crashkernel() with dma_force_32bit
arm64: mm: Cleanup useless parameters in zone_sizes_init()

arch/arm64/include/asm/kexec.h | 1 +
arch/arm64/mm/init.c | 60 ++++++++++++++++++++++++----------
arch/arm64/mm/mmu.c | 6 ++--
3 files changed, 46 insertions(+), 21 deletions(-)