summaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorChen, Kenneth W <kenneth.w.chen@intel.com>2006-03-31 12:30:01 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-31 22:18:50 +0200
commit78c997a4be7d1ed3ff4c27f23d30a0185d39bcbf (patch)
tree6ca625d590c7ec2e31acca3f2a1d28dce2e96332 /mm
parent[PATCH] fix extra page ref count in follow_hugetlb_page (diff)
downloadlinux-78c997a4be7d1ed3ff4c27f23d30a0185d39bcbf.tar.xz
linux-78c997a4be7d1ed3ff4c27f23d30a0185d39bcbf.zip
[PATCH] hugetlb: don't allow free hugetlb count fall below reserved count
With strict page reservation, I think kernel should enforce number of free hugetlb page don't fall below reserved count. Currently it is possible in the sysctl path. Add proper check in sysctl to disallow that. Signed-off-by: Ken Chen <kenneth.w.chen@intel.com> Cc: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/hugetlb.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index d87885eb4acc..832f676ca038 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -334,6 +334,7 @@ static unsigned long set_max_huge_pages(unsigned long count)
return nr_huge_pages;
spin_lock(&hugetlb_lock);
+ count = max(count, reserved_huge_pages);
try_to_free_low(count);
while (count < nr_huge_pages) {
struct page *page = dequeue_huge_page(NULL, 0);