mm: disable numa migration faults for dax vmas
authorDan Williams <[email protected]>
Tue, 13 Dec 2016 00:43:12 +0000 (16:43 -0800)
committerLinus Torvalds <[email protected]>
Tue, 13 Dec 2016 02:55:07 +0000 (18:55 -0800)
Mark dax vmas as not migratable to exclude them from task_numa_work().
This is especially relevant for device-dax which wants to ensure
predictable access latency and not incur periodic faults.

[[email protected]: add comment]
Link: http://lkml.kernel.org/r/147892450132.22062.16875659431109209179.stgit@dwillia2-desk3.amr.corp.intel.com
Signed-off-by: Dan Williams <[email protected]>
Reported-by: Aneesh Kumar K.V <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: "Kirill A. Shutemov" <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
include/linux/mempolicy.h

index 5e5b2969d93167a8337823dcc74b15ce53870307..5f4d8281832b04fb6602f1803b17c84c71321e71 100644 (file)
@@ -7,6 +7,7 @@
 
 
 #include <linux/mmzone.h>
+#include <linux/dax.h>
 #include <linux/slab.h>
 #include <linux/rbtree.h>
 #include <linux/spinlock.h>
@@ -177,6 +178,13 @@ static inline bool vma_migratable(struct vm_area_struct *vma)
        if (vma->vm_flags & (VM_IO | VM_PFNMAP))
                return false;
 
+       /*
+        * DAX device mappings require predictable access latency, so avoid
+        * incurring periodic faults.
+        */
+       if (vma_is_dax(vma))
+               return false;
+
 #ifndef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
        if (vma->vm_flags & VM_HUGETLB)
                return false;