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 C84C7C3DA4A for ; Wed, 14 Aug 2024 12:43:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 65FBA6B0089; Wed, 14 Aug 2024 08:43:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 611076B008C; Wed, 14 Aug 2024 08:43:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B1626B0093; Wed, 14 Aug 2024 08:43:42 -0400 (EDT) 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 2C1C86B0089 for ; Wed, 14 Aug 2024 08:43:42 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id D0B2440F49 for ; Wed, 14 Aug 2024 12:43:41 +0000 (UTC) X-FDA: 82450817442.17.4A9618C Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) by imf04.hostedemail.com (Postfix) with ESMTP id E0D1D4000C for ; Wed, 14 Aug 2024 12:43:38 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=ULazI4WH; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723639347; 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=ypomk+HJlRap9+lz8oD/wJ+MqAQGpQKIAWyfRaZGgio=; b=xOq4+X9Gk/vg8aUJMGfuQIDrAndQ2kIDDJjgDxacRd/es32ggjYYM45M6XYlC5/Xq37RFG 3LcIDdKjU18Ai9VzmUQNGGKiS1dofWQ632BspmCri3yj1RIoukPBN4MXAQ100kWfOchXFm FUezLIMu6Y7JwCVzOPxojfnuzSfukP4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723639347; a=rsa-sha256; cv=none; b=6DbQrB++Qzg8HjHd83hopsNcYfq7MsdfXkuSMFnA+7i6t7HDX9h6jhAg7Jr90j1yukAYFN LqaTLmt0FKWwZ631b4QRxfCiBHSwIXqTp/0vu/PGJHtb9QU84IdDzjqZJeEMcoGligaH7G /CAJfYSPJ0z15Lv4w3ibM9hn0gY45kI= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.com header.s=google header.b=ULazI4WH; spf=pass (imf04.hostedemail.com: domain of mhocko@suse.com designates 209.85.221.44 as permitted sender) smtp.mailfrom=mhocko@suse.com; dmarc=pass (policy=quarantine) header.from=suse.com Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-368f92df172so3238216f8f.2 for ; Wed, 14 Aug 2024 05:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1723639417; x=1724244217; darn=kvack.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=ypomk+HJlRap9+lz8oD/wJ+MqAQGpQKIAWyfRaZGgio=; b=ULazI4WHFDlChjkcw0URL0Cza6Qo8mL5fAtpwIkVAnJ8/G6wzXozn11n3b5ylVAYdY 9zq8cAc056TRtNyrrpnSomM2x3J3i2iTgGEM+XcBT3qYoRJj0uIIyMju2txDKgn3tk9B 0oCYX0Ts5r+K9WGB2RuEULQMccuEr243j/VUcIf9UvTdeXLaw2f370KA9jDnEVjVlNgD d5GI2iWRA8sZsjBctTCAOZLovX0otFkxbPy3DRIr52IDVd8Ei2tJpQgVJWu0A2g2JvqS wt8tW1J+Syn6j6kfMjEYGKqe+ZcKujZ/sIG+Sj8JHE4fd1vd7CThT8A0hTjchdQWu1qN irmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723639417; x=1724244217; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=ypomk+HJlRap9+lz8oD/wJ+MqAQGpQKIAWyfRaZGgio=; b=HNGTxHoioLQC9T7rkBwYNX/pgO/W5yjhvOSlbUzoMgDQ2b4lTlmcZDvbcof8wJiSFc f/DHQ2Ie3LI0JhgkuVwC5DMDu9sTFsIAF47GPTL51rV1W+Neqcl/rNeaT88yd008j1Fh yVWUbcRLU6hrbiFOWPVRC8uU51mbWMoIr08RhStQkxV9IH6+rKZnwtE0BThEi1t53v+L ImFpbyPc061LmCkA2/JJ1zz1WHTj8UOly9K2HOx7oskZqmrIDsGvYUJtI+N6h5V3Wrsg hrvdeiw78naKrHqiSDJEoC7QEMAmfzRb3v7ucPYDEwcpCaGAdfd1oekN5v4WAFybejDL /52Q== X-Forwarded-Encrypted: i=1; AJvYcCX3s916RjI862HN6qU22+mw4MkTmoanpxidNOvV7RKVrrFI4PoNpEM1faN751sVoZmXMOglfWuHaQ==@kvack.org X-Gm-Message-State: AOJu0YwDwjzKmSEA9ydwXD+aLt3UxzJQFY8YX5YfME6w5epnIT2uRy/o 0L6bNhj2qrd2QicRhrTyC7yiZuZxkuh1FSBGmI7oxpz7H1uBRq5zYnUpI+fi7aw= X-Google-Smtp-Source: AGHT+IG8GAJoiQZJUBkzacdtcwF40DeKG3vAyhQ3gVD0geVHLmeVuo6ZEHKUw5aW7JibBFEaEdZuAg== X-Received: by 2002:a05:6000:4388:b0:371:8319:4dcc with SMTP id ffacd0b85a97d-371831950c5mr115307f8f.2.1723639417172; Wed, 14 Aug 2024 05:43:37 -0700 (PDT) Received: from localhost (109-81-83-166.rct.o2.cz. [109.81.83.166]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-36e4cfeeb09sm12790032f8f.51.2024.08.14.05.43.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 14 Aug 2024 05:43:36 -0700 (PDT) Date: Wed, 14 Aug 2024 14:43:36 +0200 From: Michal Hocko To: Yafang Shao Cc: Christoph Hellwig , akpm@linux-foundation.org, viro@zeniv.linux.org.uk, brauner@kernel.org, jack@suse.cz, david@fromorbit.com, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, Kent Overstreet Subject: Re: [PATCH 1/2] mm: Add memalloc_nowait_{save,restore} Message-ID: References: <20240812090525.80299-1-laoar.shao@gmail.com> <20240812090525.80299-2-laoar.shao@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Stat-Signature: jmjrfn6g4fwnx3447sidahqkbbghhon9 X-Rspamd-Queue-Id: E0D1D4000C X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723639418-735976 X-HE-Meta: U2FsdGVkX1/TJfWMjD6xu4i1ri5NlyBJjprQqws3NamYH9EEHYf77E62mD/ouWBsVADKBFhF4wAEQwXpok7EG4S2bQSfDbw93YKqHjpZDmMYg1aiY/J68wWVPr2T88R4qwE43R5ldIHLWWYKN0QP47148K1OKMwOJfUZ3/Pa2MvPf6lH8WdJ5ElNPtSLx1rvBUtmgcIXADOyTvJqNasGctKpDw/Hpp9QAkqjBmty5erW7GxCDHrR0D5G/ox/lPXABIBCaghmrDdPwDD6k1qB4WnAvkSJR7bNkRf+BMyX5vVVXK7+ECLIGxiL/G9HL6+X32vb7+Gt5hmVXM4GfnbhVOuq45nQdLtJTDTWXjrWo8/LlY+vD/7sgHKbOooaQ1t08EbWspQ9m171gT7x0xtfyzuPu0rUiRJjnNXcY6Y6L7gzrNWuaKJL37JSPr15IVWYOncfWLI4qw+n0C6yPExUsPf1R9T2RjD5osaa0bc3hKalw0ckvlSslE3vy+7palwWH995pkXjctOtzNO0r34Y30uU2yhG4zfI1cSSfrDxZis9NsIytl26rPR5k4nogCJRfJaDVHJJGnoH497dtm2Utxm4oMTaXWiqyYyH9Gdd0AiMqPWR5vsd/17lw81ZCV9/5Evvkt4GfsLP3KljDYBBFWbT0L03/TSI0NbL1+NTCA5y84A2YL5wCcGG+QcU5b0m/slh0JvLxwFAJK1Rb3TsX8UTKDWp4bDHasVMbbqHOtIbrqPybrAlET5q2tqPFhEwakrG9nq+//KLwZhgl6MFfUwDZWz3i7LUYcU5A7+3WP9L1E+agkcEIsagBKAZAe1P+hOLkiB9AwxovCh0DXRshqx6DK+6NYrrgfXzSApdd2M2QWDvZ7Y1+8ta07ctE7Pw4g3g2kltNXxXQEsmz9o+1ibaT7+MlFN/XTMyTHw/i/Yb76jEfOg1xr1toJ5qY5XNSXGMhXQeai3V7OeG72j hxGTNpp4 7EU+we3i4D9yYjE7nzXp6cOO/ImK3vEoR9MkWWKASVsnZS4maUpEkmKHalXNVNdYp9ygaHWHWTJDMLJHBq1A4qY0+jUSVPk8BNzvaU2Q4ldjX8VQcswR/STIfcNflY/zc4AxWAh2OKz0JNEDoWPAnDJYRx8pkOPpBSffzQGXZr9gye3+6tmAomGvLpMIjSubbYcYqDwDH317qRi08V/3RNlk+ZuffYEQREefOWGTi3ulGi5t9+P5JBrVaAuAjOKI9CxlBBGDWlZ5Qwj/DiFvJIJMHZMS550thn9gK/cw13HgtU72gfYoyS9XrGoWvvc2l9yV3HJ6sQbReprJ1iU/jbrCTtqwXWqJwfOibKd2EXVlttECsUMklCInR63v3EizkDVMpv7h48R5wW4+8lse/Vgasab31W5BEUmrnD6NoCHdq97nODR/hTtK8fZvVB1GEAaH7V5AmWWWDIPsI0T/vUnP9cr69KG7E5GwBns5itYFeDOCKyOCe1BBzr89Funa//cCuD1wyis7NswAt/2/iThTt89dAwDnOmhOLtWlDQZLzSloMgeHKM5MNDA+WAvwww+cqB9ahsmhw8e9FkGZFcEoPgyfQYEiH64otoHDLTJx4ZTBcmZwfwo7C5A== 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 Wed 14-08-24 16:12:27, Yafang Shao wrote: > On Wed, Aug 14, 2024 at 3:42 PM Michal Hocko wrote: > > > > On Mon 12-08-24 20:59:53, Yafang Shao wrote: > > > On Mon, Aug 12, 2024 at 7:37 PM Christoph Hellwig wrote: > > > > > > > > On Mon, Aug 12, 2024 at 05:05:24PM +0800, Yafang Shao wrote: > > > > > The PF_MEMALLOC_NORECLAIM flag was introduced in commit eab0af905bfc > > > > > ("mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN"). To complement > > > > > this, let's add two helper functions, memalloc_nowait_{save,restore}, which > > > > > will be useful in scenarios where we want to avoid waiting for memory > > > > > reclamation. > > > > > > > > No, forcing nowait on callee contets is just asking for trouble. > > > > Unlike NOIO or NOFS this is incompatible with NOFAIL allocations > > > > > > I don’t see any incompatibility in __alloc_pages_slowpath(). The > > > ~__GFP_DIRECT_RECLAIM flag only ensures that direct reclaim is not > > > performed, but it doesn’t prevent the allocation of pages from > > > ALLOC_MIN_RESERVE, correct? > > > > Right but this means that you just made any potential nested allocation > > within the scope that is GFP_NOFAIL a busy loop essentially. Not to > > mention it BUG_ON as non-sleeping GFP_NOFAIL allocations are > > unsupported. I believe this is what Christoph had in mind. > > If that's the case, I believe we should at least consider adding the > following code change to the kernel: We already do have that /* * All existing users of the __GFP_NOFAIL are blockable, so warn * of any new users that actually require GFP_NOWAIT */ if (WARN_ON_ONCE_GFP(!can_direct_reclaim, gfp_mask)) goto fail; But Barry has patches to turn that into BUG because failing NOFAIL allocations is not cool and cause unexpected failures. Have a look at https://lore.kernel.org/all/20240731000155.109583-1-21cnbao@gmail.com/ > > I am really > > surprised that we even have PF_MEMALLOC_NORECLAIM in the first place! > > There's use cases for it. Right but there are certain constrains that we need to worry about to have a maintainable code. Scope allocation contrains are really a good feature when that has a well defined semantic. E.g. NOFS, NOIO or NOMEMALLOC (although this is more self inflicted injury exactly because PF_MEMALLOC had a "use case"). NOWAIT scope semantic might seem a good feature but it falls appart on nested NOFAIL allocations! So the flag is usable _only_ if you fully control the whole scoped context. Good luck with that long term! This is fragile, hard to review and even harder to keep working properly. The flag would have been Nacked on that ground. But nobody asked... -- Michal Hocko SUSE Labs