|
|
@@ -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;
|