• L
    Revert "revert "Revert "mm: remove __GFP_NO_KSWAPD""" and associated damage · caf49191
    Linus Torvalds 提交于
    This reverts commits a5091539 and
    d7c3b937.
    
    This is a revert of a revert of a revert.  In addition, it reverts the
    even older i915 change to stop using the __GFP_NO_KSWAPD flag due to the
    original commits in linux-next.
    
    It turns out that the original patch really was bogus, and that the
    original revert was the correct thing to do after all.  We thought we
    had fixed the problem, and then reverted the revert, but the problem
    really is fundamental: waking up kswapd simply isn't the right thing to
    do, and direct reclaim sometimes simply _is_ the right thing to do.
    
    When certain allocations fail, we simply should try some direct reclaim,
    and if that fails, fail the allocation.  That's the right thing to do
    for THP allocations, which can easily fail, and the GPU allocations want
    to do that too.
    
    So starting kswapd is sometimes simply wrong, and removing the flag that
    said "don't start kswapd" was a mistake.  Let's hope we never revisit
    this mistake again - and certainly not this many times ;)
    Acked-by: NMel Gorman <mgorman@suse.de>
    Acked-by: NJohannes Weiner <hannes@cmpxchg.org>
    Cc: Rik van Riel <riel@redhat.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    caf49191
i915_gem.c 110.2 KB