Re: [PATCH 03/13] mm: Add generic p?d_large() macros

From: Mark Rutland
Date: Mon Feb 18 2019 - 06:14:31 EST


On Fri, Feb 15, 2019 at 05:02:24PM +0000, Steven Price wrote:
> From: James Morse <james.morse@xxxxxxx>
>
> Exposing the pud/pgd levels of the page tables to walk_page_range() means
> we may come across the exotic large mappings that come with large areas
> of contiguous memory (such as the kernel's linear map).
>
> For architectures that don't provide p?d_large() macros, provided a
> does nothing default.
>
> Signed-off-by: James Morse <james.morse@xxxxxxx>
> Signed-off-by: Steven Price <steven.price@xxxxxxx>
> ---
> include/asm-generic/pgtable.h | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
> index 05e61e6c843f..7630d663cd51 100644
> --- a/include/asm-generic/pgtable.h
> +++ b/include/asm-generic/pgtable.h
> @@ -1186,4 +1186,14 @@ static inline bool arch_has_pfn_modify_check(void)
> #define mm_pmd_folded(mm)__is_defined(__PAGETABLE_PMD_FOLDED)
> #endif
>
> +#ifndef pgd_large
> +#define pgd_large(x)0
> +#endif
> +#ifndef pud_large
> +#define pud_large(x)0
> +#endif
> +#ifndef pmd_large
> +#define pmd_large(x)0
> +#endif

It might be worth a comment defining the semantics of these, e.g. how
they differ from p?d_huge() and p?d_trans_huge().

Thanks,
Mark.

> +
> #endif /* _ASM_GENERIC_PGTABLE_H */
> --
> 2.20.1
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.