[PATCH v7 4/6] arm64: mm: Optimize split_kernel_leaf_mapping()
Ryan Roberts
ryan.roberts at arm.com
Thu Sep 4 04:09:39 PDT 2025
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 at arm.com>
>
> Reviewed-by: Catalin Marinas <catalin.marinas at arm.com>
>
> And I agree with Yang, you can just fold this into the previous patch.
Yep, will do. Thanks for the review.
More information about the linux-arm-kernel
mailing list