aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2012-11-02 07:33:45 -0400
committerMel Gorman <mgorman@suse.de>2012-12-11 09:42:42 -0500
commit4daae3b4b9e49b7e0935499a352f1c59d90287d2 (patch)
tree2ac600b955c89e3b1b2070110a9b7293a4511b19 /include
parent149c33e1c98f83050870514f380902dc6d617bd5 (diff)
mm: mempolicy: Use _PAGE_NUMA to migrate pages
Note: Based on "mm/mpol: Use special PROT_NONE to migrate pages" but sufficiently different that the signed-off-bys were dropped Combine our previous _PAGE_NUMA, mpol_misplaced and migrate_misplaced_page() pieces into an effective migrate on fault scheme. Note that (on x86) we rely on PROT_NONE pages being !present and avoid the TLB flush from try_to_unmap(TTU_MIGRATION). This greatly improves the page-migration performance. Based-on-work-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Mel Gorman <mgorman@suse.de>
Diffstat (limited to 'include')
-rw-r--r--include/linux/huge_mm.h9
1 files changed, 5 insertions, 4 deletions
diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
index a1d26a98c655..dabb5108d6c0 100644
--- a/include/linux/huge_mm.h
+++ b/include/linux/huge_mm.h
@@ -160,8 +160,8 @@ static inline struct page *compound_trans_head(struct page *page)
160 return page; 160 return page;
161} 161}
162 162
163extern int do_huge_pmd_numa_page(struct mm_struct *mm, unsigned long addr, 163extern int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
164 pmd_t pmd, pmd_t *pmdp); 164 unsigned long addr, pmd_t pmd, pmd_t *pmdp);
165 165
166#else /* CONFIG_TRANSPARENT_HUGEPAGE */ 166#else /* CONFIG_TRANSPARENT_HUGEPAGE */
167#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) 167#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
@@ -200,9 +200,10 @@ static inline int pmd_trans_huge_lock(pmd_t *pmd,
200 return 0; 200 return 0;
201} 201}
202 202
203static inline int do_huge_pmd_numa_page(struct mm_struct *mm, unsigned long addr, 203static inline int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma,
204 pmd_t pmd, pmd_t *pmdp) 204 unsigned long addr, pmd_t pmd, pmd_t *pmdp)
205{ 205{
206 return 0;
206} 207}
207 208
208#endif /* CONFIG_TRANSPARENT_HUGEPAGE */ 209#endif /* CONFIG_TRANSPARENT_HUGEPAGE */