• Mel Gorman's avatar
    don't group high order atomic allocations · 64c5e135
    Mel Gorman authored
    Grouping high-order atomic allocations together was intended to allow
    bursty users of atomic allocations to work such as e1000 in situations
    where their preallocated buffers were depleted.  This did not work in at
    least one case with a wireless network adapter needing order-1 allocations
    frequently.  To resolve that, the free pages used for min_free_kbytes were
    moved to separate contiguous blocks with the patch
    bias-the-location-of-pages-freed-for-min_free_kbytes-in-the-same-max_order_nr_pages-blocks.
    
    It is felt that keeping the free pages in the same contiguous blocks should
    be sufficient for bursty short-lived high-order atomic allocations to
    succeed, maybe even with the e1000.  Even if there is a failure, increasing
    the value of min_free_kbytes will free pages as contiguous bloks in
    contrast to the standard buddy allocator which makes no attempt to keep the
    minimum number of free pages contiguous.
    
    This patch backs out grouping high order atomic allocations together to
    determine if it is really needed or not.  If a new report comes in about
    high-order atomic allocations failing, the feature can be reintroduced to
    determine if it fixes the problem or not.  As a side-effect, this patch
    reduces by 1 the number of bits required to track the mobility type of
    pages within a MAX_ORDER_NR_PAGES block.
    Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
    Acked-by: default avatarAndy Whitcroft <apw@shadowen.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    64c5e135
page_alloc.c 121 KB