Re: [PATCH v3 1/6] mm: add definition of PMD_PAGE_ORDER

From: Kirill A. Shutemov
Date: Thu Aug 06 2020 - 06:12:29 EST


On Tue, Aug 04, 2020 at 12:50:30PM +0300, Mike Rapoport wrote:
> From: Mike Rapoport <rppt@xxxxxxxxxxxxx>
>
> The definition of PMD_PAGE_ORDER denoting the number of base pages in the
> second-level leaf page is already used by DAX and maybe handy in other
> cases as well.
>
> Several architectures already have definition of PMD_ORDER as the size of
> second level page table, so to avoid conflict with these definitions use
> PMD_PAGE_ORDER name and update DAX respectively.
>
> Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx>
> ---
> fs/dax.c | 10 +++++-----
> include/linux/pgtable.h | 3 +++
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/fs/dax.c b/fs/dax.c
> index 11b16729b86f..b91d8c8dda45 100644
> --- a/fs/dax.c
> +++ b/fs/dax.c
> @@ -50,7 +50,7 @@ static inline unsigned int pe_order(enum page_entry_size pe_size)
> #define PG_PMD_NR (PMD_SIZE >> PAGE_SHIFT)
>
> /* The order of a PMD entry */
> -#define PMD_ORDER (PMD_SHIFT - PAGE_SHIFT)
> +#define PMD_PAGE_ORDER (PMD_SHIFT - PAGE_SHIFT)

Hm. Wouldn't it conflict with definition in pgtable.h? Or should we
include it instead?

> diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
> index 56c1e8eb7bb0..79f8443609e7 100644
> --- a/include/linux/pgtable.h
> +++ b/include/linux/pgtable.h
> @@ -28,6 +28,9 @@
> #define USER_PGTABLES_CEILING 0UL
> #endif
>
> +/* Number of base pages in a second level leaf page */
> +#define PMD_PAGE_ORDER (PMD_SHIFT - PAGE_SHIFT)
> +
> /*
> * A page table page can be thought of an array like this: pXd_t[PTRS_PER_PxD]
> *

--
Kirill A. Shutemov