[PATCH 5/6] drm/i915: use __GFP_RETRY_MAYFAIL

From: Michal Hocko
Date: Fri Jun 23 2017 - 04:55:27 EST


From: Michal Hocko <mhocko@xxxxxxxx>

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.

Cc: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Michal Hocko <mhocko@xxxxxxxx>
---
drivers/gpu/drm/i915/i915_gem.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

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 @@ i915_gem_object_get_pages_gtt(struct drm_i915_gem_object *obj)
* 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);

--
2.11.0