aboutsummaryrefslogtreecommitdiffstats
path: root/mm/mmap.c
diff options
context:
space:
mode:
authorXiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>2012-03-21 19:33:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-21 20:54:56 -0400
commitf44d21985eb6af7361d3785e26923355172147bd (patch)
tree1ced398274730cee6cd9173696e6fe08e52c6e91 /mm/mmap.c
parentcbde83e21c4fd50bfc4240408355c1e5d393063d (diff)
mm: do not reset cached_hole_size when vma is unmapped
In the current code, cached_hole_size is set to the maximum value if the unmapped vma is less that free_area_cache so the next search will search from the base address. Actually, we can keep cached_hole_size so that if the next required size is more than cached_hole_size, it can search from free_area_cache. Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Ingo Molnar <mingo@redhat.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Michal Hocko <mhocko@suse.cz> Cc: Hillf Danton <dhillf@gmail.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/mmap.c')
-rw-r--r--mm/mmap.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index da15a79b144..4f31764d838 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1426,10 +1426,8 @@ void arch_unmap_area(struct mm_struct *mm, unsigned long addr)
1426 /* 1426 /*
1427 * Is this a new hole at the lowest possible address? 1427 * Is this a new hole at the lowest possible address?
1428 */ 1428 */
1429 if (addr >= TASK_UNMAPPED_BASE && addr < mm->free_area_cache) { 1429 if (addr >= TASK_UNMAPPED_BASE && addr < mm->free_area_cache)
1430 mm->free_area_cache = addr; 1430 mm->free_area_cache = addr;
1431 mm->cached_hole_size = ~0UL;
1432 }
1433} 1431}
1434 1432
1435/* 1433/*