[Devel] [PATCH rh7 0/4] mm: page_idle: fix anon_vma dereference/locking

Vladimir Davydov vdavydov at virtuozzo.com
Tue Dec 8 05:03:44 PST 2015


rmap_walk() present in RH7 requires the caller to either hold mmap_sem
or pin the page's anon_vma. page_idle_clear_pte_refs does neither. As a
result, it might end up trying to lock/unlock anon_vma which has already
been freed and possibly reallocated. This won't do any good.

Let's pull the new version of rmap_walk() from upstream, which allows to
specify a custom anon_vma lock function and use it in page_idle code to
avoid this issue. This patch puts page_idle in sync with upstream.

I hope this will fix:

https://jira.sw.ru/browse/PSBM-42015

Joonsoo Kim (3):
  mm/rmap: factor lock function out of rmap_walk_anon()
  mm/rmap: make rmap_walk to get the rmap_walk_control argument
  mm/rmap: extend rmap_walk_xxx() to cope with different cases

Vladimir Davydov (1):
  mm: page_idle: look up page anon_vma carefully when checking
    references

 include/linux/ksm.h  |  7 ++---
 include/linux/rmap.h | 24 ++++++++++++++--
 mm/ksm.c             | 13 +++++++--
 mm/migrate.c         |  7 ++++-
 mm/page_idle.c       | 19 +++++++++++--
 mm/rmap.c            | 80 ++++++++++++++++++++++++++++++++++++----------------
 6 files changed, 112 insertions(+), 38 deletions(-)

-- 
2.1.4



More information about the Devel mailing list