[PATCH 0/11] update page table walker

From: Naoya Horiguchi
Date: Mon Oct 14 2013 - 13:38:37 EST


Page table walker is widely used when you want to traverse page table
tree and do some work for the entries (and pages pointed to by them.)
This is a common operation, and keep the code clean and maintainable
is important. Moreover this patchset introduces caller-specific walk
control function which is helpful for us to newly introduce page table
walker to some other users. Core change comes from patch 1, so please
see it for how it's supposed to work.

This patchset changes core code in mm/pagewalk.c at first in patch 1 and 2,
and then updates all of current users to make the code cleaner in patch
3-9. Patch 10 changes the interface of hugetlb_entry(), I put it here to
keep bisectability of the whole patchset. Patch 11 applies page table walker
to a new user queue_pages_range().

There're some other candidates of new users of page table walker:
- do_mincore()
- copy_page_range()
- remap_pfn_range()
- zap_page_range()
- free_pgtables()
- vmap_page_range_noflush()
- change_protection_range()
, but at the first step I start with adding only one new user,
queue_pages_range().

Any comments?

Thanks,
Naoya Horiguchi
---
GitHub:
git://github.com/Naoya-Horiguchi/linux.git v3.12-rc4/rewrite_pagewalker.v1

Test code:
git://github.com/Naoya-Horiguchi/test_rewrite_page_table_walker.git
---
Summary:

Naoya Horiguchi (11):
pagewalk: update page table walker core
pagewalk: add walk_page_vma()
smaps: redefine callback functions for page table walker
clear_refs: redefine callback functions for page table walker
pagemap: redefine callback functions for page table walker
numa_maps: redefine callback functions for page table walker
memcg: redefine callback functions for page table walker
madvise: redefine callback functions for page table walker
arch/powerpc/mm/subpage-prot.c: use walk_page_vma() instead of walk_page_range()
pagewalk: remove argument hmask from hugetlb_entry()
mempolicy: apply page table walker on queue_pages_range()

arch/powerpc/mm/subpage-prot.c | 6 +-
fs/proc/task_mmu.c | 262 +++++++++++++-----------------
include/linux/mm.h | 24 ++-
mm/madvise.c | 43 ++---
mm/memcontrol.c | 72 ++++-----
mm/mempolicy.c | 251 +++++++++++------------------
mm/pagewalk.c | 352 +++++++++++++++++++++++++----------------
7 files changed, 482 insertions(+), 528 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/