From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 76599C4828F for ; Wed, 7 Feb 2024 07:24:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B278B6B0074; Wed, 7 Feb 2024 02:24:38 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AD55F6B0075; Wed, 7 Feb 2024 02:24:38 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 976C16B0078; Wed, 7 Feb 2024 02:24:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 837846B0074 for ; Wed, 7 Feb 2024 02:24:38 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 22290120CB3 for ; Wed, 7 Feb 2024 07:24:38 +0000 (UTC) X-FDA: 81764170236.19.A8A5B0F Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by imf04.hostedemail.com (Postfix) with ESMTP id AECE94000A for ; Wed, 7 Feb 2024 07:24:35 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=E7gdMzDK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1iNvUmVE; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=E7gdMzDK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1iNvUmVE; dmarc=none; spf=pass (imf04.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707290676; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=7Nba8KIujIKbcUUrd8ZaQ3L+fourrfMdRHeHLaTBVm4=; b=12zN7cNBGroq+hEvNfj/PTv2191m0EGHE1riTB+SWsbtOfW8KoRRi3wiD5QaEssn/ZQMTy lQEaI4FIfaQlwtVmJtnB78P+eaAeZ2So8mw0ztraC68NqYJgsR9aRgi4U+wGFpxs7roMCD Pye3/ov6d8xkEOTqzUL2vWadgfMkxdk= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=E7gdMzDK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1iNvUmVE; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=E7gdMzDK; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=1iNvUmVE; dmarc=none; spf=pass (imf04.hostedemail.com: domain of vbabka@suse.cz designates 195.135.223.130 as permitted sender) smtp.mailfrom=vbabka@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1707290676; a=rsa-sha256; cv=none; b=uD+z8B8mClne2zZgRlNXmUQwRysU3aH4K9gt/VG/E47isTC5L3rSKxzezjP7JlzLjlmUdP ECAP6lrZDTvz5agpsa2+PBDJz/z3l6sDtAGaoX7HScCqzD8sCGO8G+mSiQ6eP8ht10PYvw 2FGV1k65zrqLZx1KCDBBIgoICgrlk90= Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id BF22B22112; Wed, 7 Feb 2024 07:24:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1707290673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7Nba8KIujIKbcUUrd8ZaQ3L+fourrfMdRHeHLaTBVm4=; b=E7gdMzDKG3tEvfUHWXuEg0ZJydiRMohQyeHe2pcmpqlgPJOP6O05IfcPkA3FTb89RMa5eV /+Asm9GyRJ8fQaVQU4Za7mJneaPmyxaFFX6OYFdCLBNdNIaAQ5oPg1LzLE6yAwLKxFhrcA 5/BKlBPkDqN6uSZ7hGuJof0tgXygAbU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1707290673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7Nba8KIujIKbcUUrd8ZaQ3L+fourrfMdRHeHLaTBVm4=; b=1iNvUmVEU4Vs1CrCvOtygXBPA5LxdujEvug4BohjhMjawQuJTrCY9w8KI0ZcMjpqKlaatR 8FKD//oinq7wPvCQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1707290673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7Nba8KIujIKbcUUrd8ZaQ3L+fourrfMdRHeHLaTBVm4=; b=E7gdMzDKG3tEvfUHWXuEg0ZJydiRMohQyeHe2pcmpqlgPJOP6O05IfcPkA3FTb89RMa5eV /+Asm9GyRJ8fQaVQU4Za7mJneaPmyxaFFX6OYFdCLBNdNIaAQ5oPg1LzLE6yAwLKxFhrcA 5/BKlBPkDqN6uSZ7hGuJof0tgXygAbU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1707290673; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7Nba8KIujIKbcUUrd8ZaQ3L+fourrfMdRHeHLaTBVm4=; b=1iNvUmVEU4Vs1CrCvOtygXBPA5LxdujEvug4BohjhMjawQuJTrCY9w8KI0ZcMjpqKlaatR 8FKD//oinq7wPvCQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id AD12513931; Wed, 7 Feb 2024 07:24:33 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id POSBKTEww2V4MAAAD6G6ig (envelope-from ); Wed, 07 Feb 2024 07:24:33 +0000 Message-ID: Date: Wed, 7 Feb 2024 08:24:33 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/3] mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN Content-Language: en-US To: Kent Overstreet , linux-mm@kvack.org Cc: Matthew Wilcox , Michal Hocko , "Darrick J . Wong" References: <20240206215016.961253-1-kent.overstreet@linux.dev> <20240206215016.961253-3-kent.overstreet@linux.dev> From: Vlastimil Babka In-Reply-To: <20240206215016.961253-3-kent.overstreet@linux.dev> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spamd-Bar: / X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: AECE94000A X-Stat-Signature: fkcsrkmiu9paodqtw3uetbdmn9zm1r6z X-Rspam-User: X-HE-Tag: 1707290675-287824 X-HE-Meta: U2FsdGVkX1+B4xr9LvZULJK11Csy0ss2Ssv+LVS2HxnN1806NnJue65W7Jh/hKkUCg1hGrNS2s4sA8wJvsb4qByXequN8l1ewbE7QRCq+StyNixhKdcimBuuKqDqkIQRUnXCkzV2nJmHEkptqN4ic/xOTU2iKAPlwovemU/vB78JcP56PDAP77THcIFSKCqAySW+077VceZYsv0nMb/5d/DPyx3ksUSoDOAUxkq1gwkQXk8KU/KEMnTFk+1IcHXwRCFlr3PNu7DCfiV/MEPIviicNd2lFZy/jlJb7NHHzdLuTHWv8+r2x0hfpp5nS8ak3Yz/bZmLfw7XjkFXgI+cz/DOEaBP0a+zOmucwCuqb7+gTrUKLBPidYaLKqVolreA81cJLVuBeS8+hN3LbEvrn9TOWooo7o5bW8JVVMFefILvaJmrksYaTdljqKfp7GeBgssby75ocIDV5ZGywwyYEEqHHxBKqCZHeHNOkTuYk4O0w76cjDR87/fi08ONoBjzqpJN8CrErb9tzAhv/S4C9411xLfDK05hyWp9o/SVJ3cFRiAh1gr3kSKqq4/BdHmwf/rZw7QRXt0dD5bnidl0n7OVaNLzSWnNLfoayU2dcJEnWcAmJWD/eBDCLOFUXhV3dO0lSAxnXy9o6wWVrpdeO/3BR0uj0gnwVNK9HiZetDIvBmBSozLzNIk2uv+rkly/dUvj9kEcI4vV6A8JskXvIAHeMzQVRh23epVSUuXHHVt48LYQltJBH9wruu7PwakCeotP+bOoJxuD91sZLWSb4s10KFXfj4n8bIGPT2agNO9cEeuI70tY1N2eh2AWXO7290ATkK/az6pZMtFLz4EBAEebUWhU/TWOHlyQeW6/t+clsOiD872ou+BJzsR24o2gwGtI1jt+3dKVALzCLn1OiyBNWW1HtJ0TpSPbvwOqMKwHwfuYQ1Ikcq0j+JmRQx3T8rMPt+ddZKqhn+v6cTb hTXJMDLO ym3Y2zVO6dqVhOYFwmoJZh/TJm0QFwl0acoaN1LdFnE2CN2Dj8mI9lMtKy/9Fa9/Ic40r5PQBTo/LixcF6Y7y0mdygNWwxaW87nvxM74kZcbe+KcOzhP6ovghbXr+/rrg67tqhF/ecic3nKddZCODvTwXCqSNTQAewb0iN+PK5ZAwMInFJ9CdJgnegwbf6EXjsKSVsJgw1Ooib1CFNU6w9w38JndUBw87O1b0TbrcuPhO0RhMVv/TpUW7zz7dwUTYtgPPt+cFXCxztasQz+0g43UXfAejrb6nXxKpok3KZ/Xddsr2pMzSgxLWa1wWBNYVaMhIX7RQnABY+e/zTbOGqANztThovMdwunK79CYkXM6/ffpGAkh4l10H43WgW+4iJu5/LrQ45l1pEhmWK2+iJYc2KRwWNkgFuYgPUhLHHHE012AMBdOufvF+ESeFhBtxn+6/Ku8F22jh485WuDw7DYSjK7bvcByuJy+Vqr8nMpPGpCUT9q4eDa1ObZjREeRzAHA96lxnQevIQoaIcfAZnOdqm1Q3/LY7040Y X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On 2/6/24 22:50, Kent Overstreet wrote: > Introduce PF_MEMALLOC_* equivalents of some GFP_ flags: > > PF_MEMALLOC_NORECLAIM -> GFP_NOWAIT In an ideal world, this would be nice, but we are in a world with implicit "too small to fail" guarantees that has so far been impossible to get away from [1] for small order GFP_KERNEL allocations, and this scoping would be only safe if no allocations underneath relied on this behavior. But how to ensure that's the case? [1] https://lwn.net/Articles/723317/ > PF_MEMALLOC_NOWARN -> __GFP_NOWARN > > Cc: Vlastimil Babka > Cc: Matthew Wilcox > Cc: Michal Hocko > Cc: Darrick J. Wong > Cc: linux-mm@kvack.org > Signed-off-by: Kent Overstreet > --- > include/linux/sched.h | 4 ++-- > include/linux/sched/mm.h | 17 +++++++++++++---- > 2 files changed, 15 insertions(+), 6 deletions(-) > > diff --git a/include/linux/sched.h b/include/linux/sched.h > index 292c31697248..ca08d92b20ac 100644 > --- a/include/linux/sched.h > +++ b/include/linux/sched.h > @@ -1755,8 +1755,8 @@ extern struct pid *cad_pid; > * I am cleaning dirty pages from some other bdi. */ > #define PF_KTHREAD 0x00200000 /* I am a kernel thread */ > #define PF_RANDOMIZE 0x00400000 /* Randomize virtual address space */ > -#define PF__HOLE__00800000 0x00800000 > -#define PF__HOLE__01000000 0x01000000 > +#define PF_MEMALLOC_NORECLAIM 0x00800000 /* All allocation requests will inherit __GFP_NOWARN */ > +#define PF_MEMALLOC_NOWARN 0x01000000 /* All allocation requests will inherit __GFP_NOWARN */ > #define PF__HOLE__02000000 0x02000000 > #define PF_NO_SETAFFINITY 0x04000000 /* Userland is not allowed to meddle with cpus_mask */ > #define PF_MCE_EARLY 0x08000000 /* Early kill for mce process policy */ > diff --git a/include/linux/sched/mm.h b/include/linux/sched/mm.h > index f00d7ecc2adf..c29059a76052 100644 > --- a/include/linux/sched/mm.h > +++ b/include/linux/sched/mm.h > @@ -236,16 +236,25 @@ static inline gfp_t current_gfp_context(gfp_t flags) > { > unsigned int pflags = READ_ONCE(current->flags); > > - if (unlikely(pflags & (PF_MEMALLOC_NOIO | PF_MEMALLOC_NOFS | PF_MEMALLOC_PIN))) { > + if (unlikely(pflags & (PF_MEMALLOC_NOIO | > + PF_MEMALLOC_NOFS | > + PF_MEMALLOC_NORECLAIM | > + PF_MEMALLOC_NOWARN | > + PF_MEMALLOC_PIN))) { > /* > - * NOIO implies both NOIO and NOFS and it is a weaker context > - * so always make sure it makes precedence > + * Stronger flags before weaker flags: > + * NORECLAIM implies NOIO, which in turn implies NOFS > */ > - if (pflags & PF_MEMALLOC_NOIO) > + if (pflags & PF_MEMALLOC_NORECLAIM) > + flags &= ~__GFP_DIRECT_RECLAIM; > + else if (pflags & PF_MEMALLOC_NOIO) > flags &= ~(__GFP_IO | __GFP_FS); > else if (pflags & PF_MEMALLOC_NOFS) > flags &= ~__GFP_FS; > > + if (pflags & PF_MEMALLOC_NOWARN) > + flags |= __GFP_NOWARN; > + > if (pflags & PF_MEMALLOC_PIN) > flags &= ~__GFP_MOVABLE; > }