[PATCH v7 4/6] arm64: mm: Optimize split_kernel_leaf_mapping()
Catalin Marinas
catalin.marinas at arm.com
Wed Sep 3 12:20:23 PDT 2025
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.
More information about the linux-arm-kernel
mailing list