Re: [patch 1/1] MM: detach_vmas_to_be_unmapped fix

From: akuster
Date: Fri Feb 23 2007 - 11:28:53 EST

Ingo Oeser wrote:

On Wednesday, 21. February 2007, akuster@xxxxxxxxxx wrote:

mm/mmap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff -puN mm/mmap.c~Avoiding-mmap-fragmentation_fixup mm/mmap.c
--- linux-2.6_clean/mm/mmap.c~Avoiding-mmap-fragmentation_fixup 2007-02-21 09:49:32.000000000 -0800
+++ linux-2.6_clean-akuster/mm/mmap.c 2007-02-21 09:51:26.000000000 -0800
@@ -1720,9 +1720,9 @@ detach_vmas_to_be_unmapped(struct mm_str
*insertion_point = vma;
tail_vma->vm_next = NULL;
if (mm->unmap_area == arch_unmap_area)
- addr = prev ? prev->vm_end : mm->mmap_base;
+ addr = prev ? prev->vm_start : mm->mmap_base;
- addr = vma ? vma->vm_start : mm->mmap_base;
+ addr = vma ? vma->vm_end : mm->mmap_base;
mm->unmap_area(mm, addr);
mm->mmap_cache = NULL; /* Kill the cache. */

Please comment, why you think this is necessary.

Yes that would help.

On Feb. 16th I asked a question and got no response. Here is what should have been included with the above patch.

Wolfgang Wander submitted a fix to address a mmap fragmentation issue. The git patch ( 1363c3cd8603a913a27e2995dccbd70d5312d8e6 ) is somewhat different and yields different results when running Wolfgang's test case leakme.c.

IMHO, the vm start and end address are swapped in arch_unmap_area and arch_unmap_area_topdown functions.

Prior to this patch arch_unmap_area() used area->vm_start and arch_unmap_area_topdown used area->vm_end in the git patch the following change showed up.

if (mm->unmap_area == arch_unmap_area)
addr = prev ? prev->vm_start : mm->mmap_base;
addr = vma ? vma->vm_end : mm->mmap_base;

Using Wolfgang Wander's leakme.c test, I get the same results seen with his original "Avoiding mmap fragmentation" patch as I do after swapping the start & end address in the above code segment. The patch I submitted addresses this typo issue.


Thanks & Regards

Ingo Oeser
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at