• Chris Wilson's avatar
    drm/i915: Selectively enable self-reclaim · 4bdadb97
    Chris Wilson authored
    Having missed the ENOMEM return via i915_gem_fault(), there are probably
    other paths that I also missed. By not enabling NORETRY by default these
    paths can run the shrinker and take memory from the system (but not from
    our own inactive lists because our shrinker can not run whilst we hold
    the struct mutex) and this may allow the system to survive a little longer
    whilst our drivers consume all available memory.
    
    References:
      OOM killer unexpectedly called with kernel 2.6.32
      http://bugzilla.kernel.org/show_bug.cgi?id=14933
    
    v2: Pass gfp into page mapping.
    v3: Use new read_cache_page_gfp() instead of open-coding.
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Cc: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Hugh Dickins <hugh.dickins@tiscali.co.uk>
    Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Cc: Eric Anholt <eric@anholt.net>
    Cc: stable@kernel.org
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4bdadb97
drm_gem.c 14.5 KB