mm, dax: dax-pmd vs thp-pmd vs hugetlbfs-pmd
A dax-huge-page mapping while it uses some thp helpers is ultimately not a transparent huge page. The distinction is especially important in the get_user_pages() path. pmd_devmap() is used to distinguish dax-pmds from pmd_huge() and pmd_trans_huge() which have slightly different semantics. Explicitly mark the pmd_trans_huge() helpers that dax needs by adding pmd_devmap() checks. [kirill.shutemov@linux.intel.com: fix regression in handling mlocked pages in __split_huge_pmd()] Signed-off-by:Dan Williams <dan.j.williams@intel.com> Cc: Dave Hansen <dave@sr71.net> Cc: Mel Gorman <mgorman@suse.de> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Matthew Wilcox <willy@linux.intel.com> Signed-off-by:
Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- arch/x86/include/asm/pgtable.h 8 additions, 1 deletionarch/x86/include/asm/pgtable.h
- include/linux/huge_mm.h 3 additions, 2 deletionsinclude/linux/huge_mm.h
- include/linux/mm.h 7 additions, 0 deletionsinclude/linux/mm.h
- mm/huge_memory.c 21 additions, 17 deletionsmm/huge_memory.c
- mm/memory.c 4 additions, 4 deletionsmm/memory.c
- mm/mprotect.c 3 additions, 2 deletionsmm/mprotect.c
- mm/pgtable-generic.c 1 addition, 1 deletionmm/pgtable-generic.c
Loading
Please register or sign in to comment