diff options
author | Andrea Arcangeli <aarcange@redhat.com> | 2010-08-02 20:41:36 +0200 |
---|---|---|
committer | Andrea Arcangeli <aarcange@redhat.com> | 2010-08-02 18:43:17 +0000 |
commit | 5553151890919288f75a303ca01a120fefabaaff (patch) | |
tree | d3fad59eba67acb123ed1e013ba9d4f75ccb03ba | |
parent | 35613c3b49057e743eb804f33939c587b2a82a04 (diff) |
khugepaged vma merge
register in khugepaged if the vma grows.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
-rw-r--r-- | mm/mmap.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mm/mmap.c b/mm/mmap.c index 3ef4e5370dd5..fdada17ae76b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -28,6 +28,7 @@ #include <linux/rmap.h> #include <linux/mmu_notifier.h> #include <linux/perf_event.h> +#include <linux/khugepaged.h> #include <asm/uaccess.h> #include <asm/cacheflush.h> @@ -806,6 +807,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, end, prev->vm_pgoff, NULL); if (err) return NULL; + khugepaged_enter_vma_merge(prev); return prev; } @@ -824,6 +826,7 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, next->vm_pgoff - pglen, NULL); if (err) return NULL; + khugepaged_enter_vma_merge(area); return area; } @@ -1752,6 +1755,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) vma->vm_end = address; } vma_unlock_anon_vma(vma); + khugepaged_enter_vma_merge(vma); return error; } #endif /* CONFIG_STACK_GROWSUP || CONFIG_IA64 */ @@ -1798,6 +1802,7 @@ static int expand_downwards(struct vm_area_struct *vma, } } vma_unlock_anon_vma(vma); + khugepaged_enter_vma_merge(vma); return error; } |