Re: [PATCH -mm 1/2] mm: fix quadratic behaviour inget_unmapped_area_topdown

From: Andrew Morton
Date: Thu Feb 23 2012 - 16:50:10 EST


On Thu, 23 Feb 2012 14:56:36 -0500
Rik van Riel <riel@xxxxxxxxxx> wrote:

> When we look for a VMA smaller than the cached_hole_size, we set the
> starting search address to mm->mmap_base, to try and find our hole.
>
> However, even in the case where we fall through and found nothing at
> the mm->free_area_cache, we still reset the search address to mm->mmap_base.
> This bug results in quadratic behaviour, with observed mmap times of 0.4
> seconds for processes that have very fragmented memory.
>
> If there is no hole small enough for us to fit the VMA, and we have
> no good spot for us right at mm->free_area_cache, we are much better
> off continuing the search down from mm->free_area_cache, instead of
> all the way from the top.

This has been at least partially addressed in recent patches from Xiao
Guangrong. Please review his five-patch series starting with "[PATCH
1/5] hugetlbfs: fix hugetlb_get_unmapped_area".

I've already merged those patches and we need to work out what way to
go.

--
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/