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

Kefeng Wang wangkefeng.wang at huawei.com
Wed May 4 20:04:44 PDT 2022


On 2022/5/4 2:20, Catalin Marinas wrote:
> On Mon, Apr 11, 2022 at 05:24:52PM +0800, 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)
> I'm not really keen on a new kernel parameter for this. But even with
> such parameter, there is another series that allows crashkernel
> reservations above ZONE_DMA32, so that would also need
> NO_BLOCK_MAPPINGS, at least initially. I think there was a proposal to
> do the high reservation first and only defer the low one in ZONE_DMA but
> suggested we get the reservations sorted first and look at optimisations
> later.
OK, we could look it again after patch "support reserving crashkernel
above 4G on arm64 kdump".

The patch3 is a small cleanup, could you pick it up?

> If hardware is so bad with page mappings, I think we need to look at
> different ways to enable the block mappings, e.g. some safe break
> before make change of the mappings or maybe switching to another TTBR1
> during boot.
>
> Does FEAT_BBM level 2 allow us to change the block size without a break
> before make? I think that can still trigger a TLB conflict abort, maybe
> we can trap it and invalidate the TLBs (the conflict should be on the
> linear map not where the kernel image is mapped).

Block mapping is better than page mapping in some testcase(unixbench,
booting time, and mysql, maybe more). KFENCE will make the liner
mapping to page mapping too. If there is a new way to let's enable
the block mapping, that's great.



More information about the linux-arm-kernel mailing list