Re: [PATCH v7 4/6] arm64: mm: Optimize split_kernel_leaf_mapping()
From: Ryan Roberts
Date: Thu Sep 04 2025 - 07:09:49 EST
On 03/09/2025 20:20, Catalin Marinas wrote:
> On Fri, Aug 29, 2025 at 12:52:45PM +0100, Ryan Roberts wrote:
>> The common case for split_kernel_leaf_mapping() is for a single page.
>> Let's optimize this by only calling split_kernel_leaf_mapping_locked()
>> once.
>>
>> Since the start and end address are PAGE_SIZE apart, they must be
>> contained within the same contpte block. Further, if start is at the
>> beginning of the block or end is at the end of the block, then the other
>> address must be in the _middle_ of the block. So if we split on this
>> middle-of-the-contpte-block address, it is guaranteed that the
>> containing contpte block is split to ptes and both start and end are
>> therefore mapped by pte.
>>
>> This avoids the second call to split_kernel_leaf_mapping_locked()
>> meaning we only have to walk the pgtable once.
>>
>> Signed-off-by: Ryan Roberts <ryan.roberts@xxxxxxx>
>
> Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
>
> And I agree with Yang, you can just fold this into the previous patch.
Yep, will do. Thanks for the review.