Re: [PATCH 0/6] mm/hugetlb: gigantic hugetlb page pools shrink supporting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ping Andi,
On Thu, Apr 04, 2013 at 05:09:08PM +0800, Wanpeng Li wrote:
>order >= MAX_ORDER pages are only allocated at boot stage using the 
>bootmem allocator with the "hugepages=xxx" option. These pages are never 
>free after boot by default since it would be a one-way street(>= MAX_ORDER
>pages cannot be allocated later), but if administrator confirm not to 
>use these gigantic pages any more, these pinned pages will waste memory
>since other users can't grab free pages from gigantic hugetlb pool even
>if OOM, it's not flexible.  The patchset add hugetlb gigantic page pools
>shrink supporting. Administrator can enable knob exported in sysctl to
>permit to shrink gigantic hugetlb pool.
>
>Testcase:
>boot: hugepagesz=1G hugepages=10
>
>[root@localhost hugepages]# free -m
>             total       used       free     shared    buffers     cached
>Mem:         36269      10836      25432          0         11        288
>-/+ buffers/cache:      10537      25732
>Swap:        35999          0      35999
>[root@localhost hugepages]# echo 0 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
>-bash: echo: write error: Invalid argument
>[root@localhost hugepages]# echo 1 > /proc/sys/vm/hugetlb_shrink_gigantic_pool
>[root@localhost hugepages]# echo 0 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
>[root@localhost hugepages]# free -m
>             total       used       free     shared    buffers     cached
>Mem:         36269        597      35672          0         11        288
>-/+ buffers/cache:        297      35972
>Swap:        35999          0      35999
>
>Wanpeng Li (6):
>  introduce new sysctl knob which control gigantic page pools shrinking
>  update_and_free_page gigantic pages awareness
>  enable gigantic hugetlb page pools shrinking
>  use already exist huge_page_order() instead of h->order
>  remove redundant hugetlb_prefault 
>  use already exist interface huge_page_shift
>
> Documentation/sysctl/vm.txt |   13 +++++++
> include/linux/hugetlb.h     |    5 +--
> kernel/sysctl.c             |    7 ++++
> mm/hugetlb.c                |   83 +++++++++++++++++++++++++++++--------------
> mm/internal.h               |    1 +
> mm/page_alloc.c             |    2 +-
> 6 files changed, 82 insertions(+), 29 deletions(-)
>
>-- 
>1.7.10.4

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]