From: Adam Litke Date: Tue, 16 Oct 2007 08:26:18 +0000 (-0700) Subject: hugetlb: Try to grow hugetlb pool for MAP_PRIVATE mappings X-Git-Tag: v2.6.24-rc1~1109 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7893d1d505d59db9d4f35165c8b6d3c6dff40a32;p=pandora-kernel.git hugetlb: Try to grow hugetlb pool for MAP_PRIVATE mappings Because we overcommit hugepages for MAP_PRIVATE mappings, it is possible that the hugetlb pool will be exhausted or completely reserved when a hugepage is needed to satisfy a page fault. Before killing the process in this situation, try to allocate a hugepage directly from the buddy allocator. The explicitly configured pool size becomes a low watermark. When dynamically grown, the allocated huge pages are accounted as a surplus over the watermark. As huge pages are freed on a node, surplus pages are released to the buddy allocator so that the pool will shrink back to the watermark. Surplus accounting also allows for friendlier explicit pool resizing. When shrinking a pool that is fully in-use, increase the surplus so pages will be returned to the buddy allocator as soon as they are freed. When growing a pool that has a surplus, consume the surplus first and then allocate new pages. Signed-off-by: Adam Litke Signed-off-by: Mel Gorman Acked-by: Andy Whitcroft Acked-by: Dave McCracken Cc: William Irwin Cc: David Gibson Cc: Ken Chen Cc: Badari Pulavarty Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- Reading git-diff-tree failed