Re: [PATCH v2 05/12] mm: thp: add core routines for thp/pmd migration

From: Naoya Horiguchi
Date: Tue Nov 08 2016 - 03:24:17 EST


On Tue, Nov 08, 2016 at 01:43:54PM +0530, Anshuman Khandual wrote:
> On 11/08/2016 05:01 AM, Naoya Horiguchi wrote:
> > This patch prepares thp migration's core code. These code will be open when
> > unmap_and_move() stops unconditionally splitting thp and get_new_page() starts
> > to allocate destination thps.
> >
> > Signed-off-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>
> > ---
> > ChangeLog v1 -> v2:
> > - support pte-mapped thp, doubly-mapped thp
> > ---
> > arch/x86/include/asm/pgtable_64.h | 2 +
> > include/linux/swapops.h | 61 +++++++++++++++
> > mm/huge_memory.c | 154 ++++++++++++++++++++++++++++++++++++++
> > mm/migrate.c | 44 ++++++++++-
> > mm/pgtable-generic.c | 3 +-
> > 5 files changed, 262 insertions(+), 2 deletions(-)
> >
> > diff --git v4.9-rc2-mmotm-2016-10-27-18-27/arch/x86/include/asm/pgtable_64.h v4.9-rc2-mmotm-2016-10-27-18-27_patched/arch/x86/include/asm/pgtable_64.h
> > index 1cc82ec..3a1b48e 100644
> > --- v4.9-rc2-mmotm-2016-10-27-18-27/arch/x86/include/asm/pgtable_64.h
> > +++ v4.9-rc2-mmotm-2016-10-27-18-27_patched/arch/x86/include/asm/pgtable_64.h
> > @@ -167,7 +167,9 @@ static inline int pgd_large(pgd_t pgd) { return 0; }
> > ((type) << (SWP_TYPE_FIRST_BIT)) \
> > | ((offset) << SWP_OFFSET_FIRST_BIT) })
> > #define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val((pte)) })
> > +#define __pmd_to_swp_entry(pte) ((swp_entry_t) { pmd_val((pmd)) })
>
> The above macro takes *pte* but evaluates on *pmd*, guess its should
> be fixed either way.

Right, I fix it.
Thank you very much.

- Naoya