diff options
author | Michal Hocko <mhocko@suse.com> | 2017-06-23 23:07:54 +0000 |
---|---|---|
committer | Johannes Weiner <hannes@cmpxchg.org> | 2017-06-23 23:07:54 +0000 |
commit | 05fc2c389365a9135d2ec4fe739e498e07664c05 (patch) | |
tree | 03c5b797c68406c82b528cc7355ef3723d726146 | |
parent | c02240bfbd37d54f3da756c01f7e02b87d9bc438 (diff) |
drm/i915: use __GFP_RETRY_MAYFAIL
24f8e00a8a2e ("drm/i915: Prefer to report ENOMEM rather than incur the oom
for gfx allocations") has tried to remove disruptive OOM killer because
the userspace should be able to cope with allocation failures. At the
time only __GFP_NORETRY could achieve that and it turned out that this
would fail the allocations just too easily. So "drm/i915: Remove
__GFP_NORETRY from our buffer allocator" removed it and hoped for a better
solution. __GFP_RETRY_MAYFAIL is that solution. It will keep retrying
the allocation until there is no more progress and we would go OOM.
Instead we fail the allocation and let the caller to deal with it.
Link: http://lkml.kernel.org/r/20170623085345.11304-6-mhocko@kernel.org
Signed-off-by: Michal Hocko <mhocko@suse.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Alex Belits <alex.belits@cavium.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Darrick J. Wong <darrick.wong@oracle.com>
Cc: David Daney <david.daney@cavium.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: NeilBrown <neilb@suse.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index ae3ce1314bd1..eb193f27c8b7 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -2434,8 +2434,9 @@ rebuild_st: * again with !__GFP_NORETRY. However, we still * want to fail this allocation rather than * trigger the out-of-memory killer and for - * this we want the future __GFP_MAYFAIL. + * this we want __GFP_RETRY_MAYFAIL. */ + gfp |= __GFP_RETRY_MAYFAIL; } } while (1); |