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

From: Mike Rapoport
Date: Thu Aug 06 2020 - 07:23:59 EST


On Thu, Aug 06, 2020 at 01:11:12PM +0300, Kirill A. Shutemov wrote:
> 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?

Actually I meant to remove it here and keep only the definition in
pgtable.h.
Will fix.

> > 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

--
Sincerely yours,
Mike.