From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754477AbdFWIzX (ORCPT ); Fri, 23 Jun 2017 04:55:23 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:32842 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754116AbdFWIyC (ORCPT ); Fri, 23 Jun 2017 04:54:02 -0400 From: Michal Hocko To: Andrew Morton Cc: Vlastimil Babka , Johannes Weiner , Mel Gorman , NeilBrown , LKML , , Michal Hocko , Chris Wilson Subject: [PATCH 5/6] drm/i915: use __GFP_RETRY_MAYFAIL Date: Fri, 23 Jun 2017 10:53:44 +0200 Message-Id: <20170623085345.11304-6-mhocko@kernel.org> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170623085345.11304-1-mhocko@kernel.org> References: <20170623085345.11304-1-mhocko@kernel.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Michal Hocko 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 Signed-off-by: Michal Hocko --- 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