• Joonsoo Kim's avatar
    mm/cma: always check which page caused allocation failure · 8ef5849f
    Joonsoo Kim authored
    Now, we have tracepoint in test_pages_isolated() to notify pfn which
    cannot be isolated.  But, in alloc_contig_range(), some error path
    doesn't call test_pages_isolated() so it's still hard to know exact pfn
    that causes allocation failure.
    
    This patch change this situation by calling test_pages_isolated() in
    almost error path.  In allocation failure case, some overhead is added
    by this change, but, allocation failure is really rare event so it would
    not matter.
    
    In fatal signal pending case, we don't call test_pages_isolated()
    because this failure is intentional one.
    
    There was a bogus outer_start problem due to unchecked buddy order and
    this patch also fix it.  Before this patch, it didn't matter, because
    end result is same thing.  But, after this patch, tracepoint will report
    failed pfn so it should be accurate.
    Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
    Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
    Acked-by: default avatarMichal Nazarewicz <mina86@mina86.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8ef5849f
page_alloc.c 189 KB