Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751520AbdFZMi6 (ORCPT ); Mon, 26 Jun 2017 08:38:58 -0400 Received: from mx2.suse.de ([195.135.220.15]:35614 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751431AbdFZMiv (ORCPT ); Mon, 26 Jun 2017 08:38:51 -0400 Date: Mon, 26 Jun 2017 14:38:48 +0200 From: Michal Hocko To: Andrew Morton , Vlastimil Babka Cc: Johannes Weiner , Mel Gorman , NeilBrown , LKML , linux-mm@kvack.org Subject: Re: [PATCH 2/6] mm, tree wide: replace __GFP_REPEAT by __GFP_RETRY_MAYFAIL with more useful semantic Message-ID: <20170626123847.GM11534@dhcp22.suse.cz> References: <20170623085345.11304-1-mhocko@kernel.org> <20170623085345.11304-3-mhocko@kernel.org> <20170626121411.GK11534@dhcp22.suse.cz> <82f5331e-8a3d-ed61-3d5d-3dfcbf557072@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <82f5331e-8a3d-ed61-3d5d-3dfcbf557072@suse.cz> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3341 Lines: 80 On Mon 26-06-17 14:17:30, Vlastimil Babka wrote: > On 06/26/2017 02:14 PM, Michal Hocko wrote: > > On Mon 26-06-17 13:45:19, Vlastimil Babka wrote: > >> On 06/23/2017 10:53 AM, Michal Hocko wrote: > > [...] > >>> - GFP_KERNEL - both background and direct reclaim are allowed and the > >>> _default_ page allocator behavior is used. That means that !costly > >>> allocation requests are basically nofail (unless the requesting task > >>> is killed by the OOM killer) > >> > >> Should we explicitly point out that failure must be handled? After lots > >> of talking about "too small to fail", people might get the wrong impression. > > > > OK. What about the following. > > "That means that !costly allocation requests are basically nofail but > > there is no guarantee of thaat behavior so failures have to be checked > > that > > > properly by callers (e.g. OOM killer victim is allowed to fail > > currently). > > Looks good, thanks! Andrew, could you fold the following in and replace the GFP_KERNEL part of the changelog with the updated text. Thanks! --- >From 0ad39ef3d2791bfad4be555851a750fcfdfe424e Mon Sep 17 00:00:00 2001 From: Michal Hocko Date: Mon, 26 Jun 2017 14:31:19 +0200 Subject: [PATCH] mm-tree-wide-replace-__gfp_repeat-by-__gfp_retry_mayfail-with-more-useful-semantic-fix.patch - GFP_KERNEL - both background and direct reclaim are allowed and the _default_ page allocator behavior is used. That means that !costly allocation requests are basically nofail but there is no guarantee of that behavior so failures have to be checked properly by callers (e.g. OOM killer victim is allowed to fail currently). Signed-off-by: Michal Hocko --- include/linux/gfp.h | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 6be1f836b69e..56bcb147910e 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -25,7 +25,7 @@ struct vm_area_struct; #define ___GFP_FS 0x80u #define ___GFP_COLD 0x100u #define ___GFP_NOWARN 0x200u -#define ___GFP_RETRY_MAYFAIL 0x400u +#define ___GFP_RETRY_MAYFAIL 0x400u #define ___GFP_NOFAIL 0x800u #define ___GFP_NORETRY 0x1000u #define ___GFP_MEMALLOC 0x2000u @@ -139,10 +139,11 @@ struct vm_area_struct; * The default allocator behavior depends on the request size. We have a concept * of so called costly allocations (with order > PAGE_ALLOC_COSTLY_ORDER). * !costly allocations are too essential to fail so they are implicitly - * non-failing (with some exceptions like OOM victims might fail) by default while - * costly requests try to be not disruptive and back off even without invoking - * the OOM killer. The following three modifiers might be used to override some of - * these implicit rules + * non-failing by default (with some exceptions like OOM victims might fail so + * the caller still has to check for failures) while costly requests try to be + * not disruptive and back off even without invoking the OOM killer. + * The following three modifiers might be used to override some of these + * implicit rules * * __GFP_NORETRY: The VM implementation will try only very lightweight * memory direct reclaim to get some memory under memory pressure (thus -- 2.11.0 -- Michal Hocko SUSE Labs