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 70F47C52D7F for ; Wed, 14 Aug 2024 08:13:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DF6C46B0083; Wed, 14 Aug 2024 04:13:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DA6F36B0088; Wed, 14 Aug 2024 04:13:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C6E166B0089; Wed, 14 Aug 2024 04:13:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A980B6B0083 for ; Wed, 14 Aug 2024 04:13:06 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 599361A0D04 for ; Wed, 14 Aug 2024 08:13:06 +0000 (UTC) X-FDA: 82450135572.04.1F60ED1 Received: from mail-yw1-f169.google.com (mail-yw1-f169.google.com [209.85.128.169]) by imf14.hostedemail.com (Postfix) with ESMTP id 8990010002A for ; Wed, 14 Aug 2024 08:13:04 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="JNkxp3+/"; spf=pass (imf14.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723623128; 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=hGvZ8Nwv8GBiQUulIipgwv+J0c68LRgI3wqw2Kiq2dA=; b=fC11Rk5JVXNGEhbXtGcdmqsivuqrk6kBjoNqDyftWXUfM4jZyq/7xLMA9jn0SY1halL2gp uQXH2F5g67EErGTXsbzLH3QruwJiTlKCT/9Th8qLV1lvBESbBBS7D7ZDyztY7KRBoVF1Tn zTBA3oH5gGrABPLg7kgblrAl5IAWeys= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b="JNkxp3+/"; spf=pass (imf14.hostedemail.com: domain of laoar.shao@gmail.com designates 209.85.128.169 as permitted sender) smtp.mailfrom=laoar.shao@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723623128; a=rsa-sha256; cv=none; b=Vy8mmwiJX5I1f0Fw6dHxHexHV7qjB2lhTUUxNffjYCv/2QDnkzcoHxl8WJzgpnzF3wZIEk u1zmAIisMJIwFL1Ry2vhU+wNG5FMx+vBmOR7bDDc3rPGJgByjvPLxjk/ISdcKP6ZbS8dSV RB2esRxNRMfnJ0SK4Jx04Cm7qKuKBMA= Received: by mail-yw1-f169.google.com with SMTP id 00721157ae682-690b6cbce11so61755827b3.2 for ; Wed, 14 Aug 2024 01:13:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1723623183; x=1724227983; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=hGvZ8Nwv8GBiQUulIipgwv+J0c68LRgI3wqw2Kiq2dA=; b=JNkxp3+/Ds9AiMQZUZ4a/AwKR7B6HmFUq7Gf8ytP2VoG8SSHbF6S8wEL0vhN18c/b9 2oAffd19/jBDX8724yzaAVAbx979q1PlJQHuVuK//Bc1Lgr+rdqAf/xT+QXaLASjjllf dI6lpbv+RhC/UBqMqMrwoFtfKppOLgryLIbLBnLXdkTnq/POrJHDV8NjNbdiJNfD4Jfv 1nn3ikz5HUIcVaSowfGe0H0d4XiaPxMxAmLWfc3vqMqxz1cxbgSOh+LGh6UERT/IpzSm BbaesAFIcwOv1FLAvK20z9vJTslJUh7wZWDGafNE7bZSIpdShtn+6th+5qQI+lq/rYm2 DI5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1723623183; x=1724227983; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=hGvZ8Nwv8GBiQUulIipgwv+J0c68LRgI3wqw2Kiq2dA=; b=XIdbKynv7ItiQ2zE4ZxljCSFdwEULD6J1JNd8WcDpAEb1xGxraC7r7tkBKolAAZ5/i UY49v/6lgsPE9EFptcQ5W8lWtDFEyaj/B+ZBOhZCOJEo4KaoUf712kaigr/5ehtBQckt x8xBMl4DZznEGC3kKojKqR/sfxq4agWSDZEJLibYuNHLFknkN04JIQVUlw3pqXU4vA+h cq3PaSBWP7h4U2TrVOMejDyAy6s8DCdfB9lMKCyAmWYFT9U6+QRRAMQMfZYPvEg/Daa5 +9+oD35CJl0R5yEDKAQHjvL0NizBGK0JovTziy+/VHN2yDJYSNulR2uBva27AcAz1GSO /ngQ== X-Forwarded-Encrypted: i=1; AJvYcCX6+GqOE2XtxUoEQAWTGe7NT4dpBpG8FPnzjFIgcyK6iZChK20VGxVHKRhkd1pRIULzarmcLiOZrmnyZC6zLeFMl5Q= X-Gm-Message-State: AOJu0YzRZjJmshOsEHhuflYljX3i6/5Y2GWhcfevZHxnNg/NyuU7INVv Tjhy7cGwyG1fEgisQvwO39GVxwK0MyAY6IdBs2eHZ4+mqqRP7C8kNxYW9Rb35F2WtH0aXTIjb/T unrXyC1HVhrYtrV6882KxfstLGKQ= X-Google-Smtp-Source: AGHT+IHPsyxsLJw627PD4PkNZdulH1HkpBqHnu70JOJZgWesLJszKkb1HmPCvSG/JsT00RpA/iRYML9yPs2FWC8VtPw= X-Received: by 2002:a05:690c:4d83:b0:64a:efa6:b3d5 with SMTP id 00721157ae682-6ac9a47849bmr25999987b3.37.1723623183563; Wed, 14 Aug 2024 01:13:03 -0700 (PDT) MIME-Version: 1.0 References: <20240812090525.80299-1-laoar.shao@gmail.com> <20240812090525.80299-2-laoar.shao@gmail.com> In-Reply-To: From: Yafang Shao Date: Wed, 14 Aug 2024 16:12:27 +0800 Message-ID: Subject: Re: [PATCH 1/2] mm: Add memalloc_nowait_{save,restore} To: Michal Hocko 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: mrg8u5qmuffefcyui6itdgxozfncw41t X-Rspam-User: X-Rspamd-Queue-Id: 8990010002A X-Rspamd-Server: rspam02 X-HE-Tag: 1723623184-646298 X-HE-Meta: U2FsdGVkX1+tRtiHZ36kxdwDuuMU15fF6c/PRrl4ZIlp6xx/2s65MASu2F/YfNzAKoMKyDSRS9OsbYvRcn1NvCNRNSrRfwdcAr2ahE/kudUTb1oA1szhsdDGH7tc8eRlPE8Pr0xFRq+lMvXGFgQyHduHtjAhs6nCYKT3+iw7TnDhkSwoaJ0dLJWFDke//o/2pDTrGYmC4QysfLgn7CDduQDeKAay5yMySfD4F3q/rcKVFYUMUcKJf9J4ybrkwwx5we7J4yD8k91gEwtx9IZGaE8X8/eBbyeaJe8Bf8AaMMCBHyOx/VFIavSch1dFsSC4uDyU7LW+FpOvv1TOfd7I6s7rvCyVgTjnTvj4ytz1yBn9I1CkZp7wc0ifqIUI+EAwx6tJTy1FeaOnOt7dunApw2lSUiok0Tv+JFTuP+SGcNhg2cOinlPCLtHtl+/axnlkWX+JBqT+c6K/ENpu0CCS5NIIm1MMrAAOhO+De7KDukD337lh2BjR9rmy82h42R25SSDY9YhyGSpLWbYT854JsNrIuljNPK3HL9/5F0j3bNJogU4ZTLcecmKmn0s/Gg94C1yX95KMtfm6jzMEl4Iqd8yIK5nBzfOlekjWjGrAMBDPDykF6clG0aRyU8KE/H/uCk4qdrI6SFZPQHUjBvp8qtByv4HYTHEp1dUg1ZR5Kf1c8wvcELz+jVtK+6lQhetdX4Hss8qe4TKiH522R3QJTZC7g7JsBNtWBfc4H4UPgalYkuepFEGUL4MuYKH295vdWWATark0OgIFGoFpqsoPUsC9GkFYjLPGfSzlIvANiMWjsJY0GdrPHoS8U7gLR25DH9sws4gZCNS7XshG+F71eRRxIqbqvCMAh35o8FJGuVavHKJvas8Xw/35lfskvikMaXnr4HVjh2I13djujOokQpJJ7K1kefajwrF+/IonRGyEYrYy5ZItnA/DfKOQYtgkef9TvjU8xis6DvfQNnj +R91AwAV u7wi72K7H6VKHkSFlFsvu/RTSe/olrUJRIdYnl1PNDI6hDngSjleNZJJVNN2baJbbZVptHH9LN9Iivrv7H0B2K/l9r1hwZR94zaPQmTzy/qUD4/a933uZwMI0EiEXSj6m2ugCR8AjLZU/Oxz7hpLy/fVoYbgQVJKL4BGn32EFI5uNNvIYz1Kj/AtCkW+Pp2QB3Gosa19BfZ/XwdCSdeMSHfdzUgeNsseqRhfRRzQ76b3xM1bzvP2AddgAJNgizzCFJg/JwrMJBI/wTzI4MRMdYZ2312OqTOyowYUkh1Vb7qzOtmq8LF6CUvRoBGwc/+91Kb2zCE8CG1MEHMIO/k/yPuXiDYkdBMXrxdVV/HW23QoWdCaCH9zeqYlZpvltXlsPo02yOhdBxc2sD025oICHOL3SnRa5k29JQ6ATK4x6macxjH7aXrERoY6CwZSIe0M1fa6G+abuRZ9ewc5IyBJBer3m95LqmrhQj2lN7H1zbmLA6bU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000031, 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, Aug 14, 2024 at 3:42=E2=80=AFPM Michal Hocko wrot= e: > > On Mon 12-08-24 20:59:53, Yafang Shao wrote: > > On Mon, Aug 12, 2024 at 7:37=E2=80=AFPM 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 eab0af905bf= c > > > > ("mm: introduce PF_MEMALLOC_NORECLAIM, PF_MEMALLOC_NOWARN"). To com= plement > > > > this, let's add two helper functions, memalloc_nowait_{save,restore= }, which > > > > will be useful in scenarios where we want to avoid waiting for memo= ry > > > > reclamation. > > > > > > No, forcing nowait on callee contets is just asking for trouble. > > > Unlike NOIO or NOFS this is incompatible with NOFAIL allocations > > > > I don=E2=80=99t see any incompatibility in __alloc_pages_slowpath(). Th= e > > ~__GFP_DIRECT_RECLAIM flag only ensures that direct reclaim is not > > performed, but it doesn=E2=80=99t 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: diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 9ecf99190ea2..89411ee23c7f 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -4168,6 +4168,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int o= rder, unsigned int zonelist_iter_cookie; int reserve_flags; + WARN_ON_ONCE(gfp_mask & __GFP_NOFAIL && !(gfp_mask & __GFP_DIRECT_RECLAIM)); restart: compaction_retries =3D 0; no_progress_loops =3D 0; > I am really > surprised that we even have PF_MEMALLOC_NORECLAIM in the first place! There's use cases for it. > Unsurprisingly this was merged without any review by the MM community :/ > -- > Michal Hocko > SUSE Labs -- Regards Yafang