[v3 PATCH 0/2] mm: mempolicy: fix mbind()'s inconsistent behavior for unmovable pages

From: Yang Shi
Date: Thu Jul 18 2019 - 13:18:15 EST



Changelog
v3: * Adopted the suggestions from Vastimil. Saved another 20 lines.
Using flag in struct queue_pages looks not outperform renumbering retval
too much since we still have to return 1 to tell the caller there are
unmovable pages. So just renumber the retval.
* Manpage is not very clear about shared pages when MPOL_MF_MOVE is
specified, just leave it as it is for now till it gets clarified.
v2: * Fixed the inconsistent behavior by not aborting !vma_migratable()
immediately by a separate patch (patch 1/2), and this is also the
preparation for patch 2/2. For the details please see the commit
log. Per Vlastimil.
* Not abort immediately if unmovable page is met. This should handle
non-LRU movable pages and temporary off-LRU pages more friendly.
Per Vlastimil and Michal Hocko.


Yang Shi (2):
mm: mempolicy: make the behavior consistent when MPOL_MF_MOVE* and MPOL_MF_STRICT were specified
mm: mempolicy: handle vma with unmovable pages mapped correctly in mbind

mm/mempolicy.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------
1 file changed, 74 insertions(+), 26 deletions(-)