mm: disable numa migration faults for dax vmas
diff mbox

Message ID 20161114162529.1a5b08ff90f6f199c1be8cc9@linux-foundation.org
State New, archived
Headers show

Commit Message

Andrew Morton Nov. 15, 2016, 12:25 a.m. UTC
On Fri, 11 Nov 2016 20:21:41 -0800 Dan Williams <dan.j.williams@intel.com> wrote:

> 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.
>
> ...
>
> @@ -177,6 +178,9 @@ static inline bool vma_migratable(struct vm_area_struct *vma)
>  	if (vma->vm_flags & (VM_IO | VM_PFNMAP))
>  		return false;
>  
> +	if (vma_is_dax(vma))
> +		return false;
> +
>  #ifndef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
>  	if (vma->vm_flags & VM_HUGETLB)
>  		return false;

I don't think the reader could figure out why this code is here, so...  this?

Comments

Dan Williams Nov. 15, 2016, 1:06 a.m. UTC | #1
On Mon, Nov 14, 2016 at 4:25 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> On Fri, 11 Nov 2016 20:21:41 -0800 Dan Williams <dan.j.williams@intel.com> wrote:
>
>> 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.
>>
>> ...
>>
>> @@ -177,6 +178,9 @@ static inline bool vma_migratable(struct vm_area_struct *vma)
>>       if (vma->vm_flags & (VM_IO | VM_PFNMAP))
>>               return false;
>>
>> +     if (vma_is_dax(vma))
>> +             return false;
>> +
>>  #ifndef CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION
>>       if (vma->vm_flags & VM_HUGETLB)
>>               return false;
>
> I don't think the reader could figure out why this code is here, so...  this?
>
> --- a/include/linux/mempolicy.h~mm-disable-numa-migration-faults-for-dax-vmas-fix
> +++ a/include/linux/mempolicy.h
> @@ -180,6 +180,10 @@ static inline bool vma_migratable(struct
>         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;
>

Yes, thanks for fixing it up.

Patch
diff mbox

--- a/include/linux/mempolicy.h~mm-disable-numa-migration-faults-for-dax-vmas-fix
+++ a/include/linux/mempolicy.h
@@ -180,6 +180,10 @@  static inline bool vma_migratable(struct
 	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;