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

From: Naoya Horiguchi
Date: Thu Nov 10 2016 - 17:52:07 EST


On Thu, Nov 10, 2016 at 01:59:03PM +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.
> >
>
> Snip
>
> > 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/mm/pgtable-generic.c v4.9-rc2-mmotm-2016-10-27-18-27_patched/mm/pgtable-generic.c
> > index 71c5f91..6012343 100644
> > --- v4.9-rc2-mmotm-2016-10-27-18-27/mm/pgtable-generic.c
> > +++ v4.9-rc2-mmotm-2016-10-27-18-27_patched/mm/pgtable-generic.c
> > @@ -118,7 +118,8 @@ pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address,
> > {
> > pmd_t pmd;
> > VM_BUG_ON(address & ~HPAGE_PMD_MASK);
> > - VM_BUG_ON(!pmd_trans_huge(*pmdp) && !pmd_devmap(*pmdp));
> > + VM_BUG_ON(pmd_present(*pmdp) && !pmd_trans_huge(*pmdp) &&
> > + !pmd_devmap(*pmdp))
>
> Its a valid VM_BUG_ON check but is it related to THP migration or
> just a regular fix up ?

Without this change, this VM_BUG_ON always triggers when migration happens
on normal thp and it succeeds, so I included it here.

- Naoya Horiguchi