• David Rientjes's avatar
    mm, thp: restructure thp avoidance of light synchronous migration · 8fe78048
    David Rientjes authored
    __GFP_NO_KSWAPD, once the way to determine if an allocation was for thp
    or not, has gained more users.  Their use is not necessarily wrong, they
    are trying to do a memory allocation that can easily fail without
    disturbing kswapd, so the bit has gained additional usecases.
    
    This restructures the check to determine whether MIGRATE_SYNC_LIGHT
    should be used for memory compaction in the page allocator.  Rather than
    testing solely for __GFP_NO_KSWAPD, test for all bits that must be set
    for thp allocations.
    
    This also moves the check to be done only after the page allocator is
    aborted for deferred or contended memory compaction since setting
    migration_mode for this case is pointless.
    Signed-off-by: default avatarDavid Rientjes <rientjes@google.com>
    Cc: Mel Gorman <mgorman@suse.de>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    8fe78048
page_alloc.c 184 KB