• N
    page allocator: explicitly retry hugepage allocations · 551883ae
    Nishanth Aravamudan 提交于
    Add __GFP_REPEAT to hugepage allocations.  Do so to not necessitate userspace
    putting pressure on the VM by repeated echo's into /proc/sys/vm/nr_hugepages
    to grow the pool.  With the previous patch to allow for large-order
    __GFP_REPEAT attempts to loop for a bit (as opposed to indefinitely), this
    increases the likelihood of getting hugepages when the system experiences (or
    recently experienced) load.
    
    Mel tested the patchset on an x86_32 laptop.  With the patches, it was easier
    to use the proc interface to grow the hugepage pool.  The following is the
    output of a script that grows the pool as much as possible running on
    2.6.25-rc9.
    
    Allocating hugepages test
    -------------------------
    Disabling OOM Killer for current test process
    Starting page count: 0
    Attempt 1: 57 pages Progress made with 57 pages
    Attempt 2: 73 pages Progress made with 16 pages
    Attempt 3: 74 pages Progress made with 1 pages
    Attempt 4: 75 pages Progress made with 1 pages
    Attempt 5: 77 pages Progress made with 2 pages
    
    77 pages was the most it allocated but it took 5 attempts from userspace
    to get it. With the 3 patches in this series applied,
    
    Allocating hugepages test
    -------------------------
    Disabling OOM Killer for current test process
    Starting page count: 0
    Attempt 1: 75 pages Progress made with 75 pages
    Attempt 2: 76 pages Progress made with 1 pages
    Attempt 3: 79 pages Progress made with 3 pages
    
    And 79 pages was the most it got. Your patches were able to allocate the
    bulk of possible pages on the first attempt.
    Signed-off-by: NNishanth Aravamudan <nacc@us.ibm.com>
    Cc: Andy Whitcroft <apw@shadowen.org>
    Tested-by: NMel Gorman <mel@csn.ul.ie>
    Cc: Dave Hansen <haveblue@us.ibm.com>
    Cc: Christoph Lameter <clameter@sgi.com>
    Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    551883ae
hugetlb.c 33.5 KB