Enable gigantic hugetlb page pools shrinking.

Signed-off-by: Wanpeng Li <liw...@linux.vnet.ibm.com>
---
 mm/hugetlb.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index eeaf6f2..328f140 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -1416,7 +1416,8 @@ static unsigned long set_max_huge_pages(struct hstate *h, 
unsigned long count,
 {
        unsigned long min_count, ret;
 
-       if (h->order >= MAX_ORDER)
+       if (h->order >= MAX_ORDER && (!hugetlb_shrink_gigantic_pool ||
+                               count > persistent_huge_pages(h)))
                return h->max_huge_pages;
 
        /*
@@ -1542,7 +1543,7 @@ static ssize_t nr_hugepages_store_common(bool 
obey_mempolicy,
                goto out;
 
        h = kobj_to_hstate(kobj, &nid);
-       if (h->order >= MAX_ORDER) {
+       if (h->order >= MAX_ORDER && !hugetlb_shrink_gigantic_pool) {
                err = -EINVAL;
                goto out;
        }
@@ -2036,7 +2037,7 @@ static int hugetlb_sysctl_handler_common(bool 
obey_mempolicy,
 
        tmp = h->max_huge_pages;
 
-       if (write && h->order >= MAX_ORDER)
+       if (write && h->order >= MAX_ORDER && !hugetlb_shrink_gigantic_pool)
                return -EINVAL;
 
        table->data = &tmp;
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to