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-horigu...@ah.jp.nec.com> > > --- > > 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