lkml.org 
[lkml]   [2016]   [Jan]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH V2] mm: mempolicy: skip non-migratable VMAs when setting MPOL_MF_LAZY
Date
MPOL_MF_LAZY is not visible from userspace since 'commit a720094ded8c
("mm: mempolicy: Hide MPOL_NOOP and MPOL_MF_LAZY from userspace for now")'
, but it should still skip non-migratable VMAs such as VM_IO, VM_PFNMAP,
and VM_HUGETLB VMAs, and avoid useless overhead of minor faults.

Signed-off-by: Liang Chen <liangchen.linux@gmail.com>
Signed-off-by: Gavin Guo <gavin.guo@canonical.com>
---
Changes since v2:
- Add more description into the changelog

We have been evaluating the enablement of MPOL_MF_LAZY again, and found
this issue. And we decided to push this patch upstream no matter if we
finally determine to propose re-enablement of MPOL_MF_LAZY or not. Since
it can be a potential problem even if MPOL_MF_LAZY is not enabled this
time.
---
mm/mempolicy.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mm/mempolicy.c b/mm/mempolicy.c
index 87a1779..436ff411 100644
--- a/mm/mempolicy.c
+++ b/mm/mempolicy.c
@@ -610,7 +610,8 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end,

if (flags & MPOL_MF_LAZY) {
/* Similar to task_numa_work, skip inaccessible VMAs */
- if (vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))
+ if (vma_migratable(vma) &&
+ vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE))
change_prot_numa(vma, start, endvma);
return 1;
}
--
1.9.1


\
 
 \ /
  Last update: 2016-01-07 05:01    [W:0.026 / U:0.796 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site