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 94E7CC02198 for ; Mon, 10 Feb 2025 21:27:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0D378280033; Mon, 10 Feb 2025 16:27:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0834F280031; Mon, 10 Feb 2025 16:27:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E6631280033; Mon, 10 Feb 2025 16:27:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id CA2EE280031 for ; Mon, 10 Feb 2025 16:27:45 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 814F147239 for ; Mon, 10 Feb 2025 21:27:45 +0000 (UTC) X-FDA: 83105322090.23.4C3CCB0 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf03.hostedemail.com (Postfix) with ESMTP id 839D02000B for ; Mon, 10 Feb 2025 21:27:43 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=MA39zCUA; spf=pass (imf03.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739222863; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=gtOKP/bSIZMX5MzdlHWBebrHFz0TkipWTyjAUPt1uMI=; b=XPH+x/lsgwS9S/xJLvJF1/GQlMn6w3O2iNUJoGi8dYOBgSDSg0D6ZwHHT4/MEVNE/5bF1g 5ozpCJJ1ZJZXx06UWSgqRlBzRs1/RflgRDIAOjMCMNWByYAugMvxzSZQ0k2kEI7LG//FyQ GvFmm30syvym4ImU/2wMKlPkaL9Vagw= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=fromorbit-com.20230601.gappssmtp.com header.s=20230601 header.b=MA39zCUA; spf=pass (imf03.hostedemail.com: domain of david@fromorbit.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=david@fromorbit.com; dmarc=pass (policy=quarantine) header.from=fromorbit.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739222863; a=rsa-sha256; cv=none; b=qYnZrGIcZ3Sx2zA0cfXPFznJELGpDPumOjuUV6M1R2BXH+Q2V9stlg+nGRIUM6Ojv7ml60 fU/puzZi6F1Ukpo6Fx4SiluUghLzHUng+2pq2cQ/v9QSh1c21e2f9aaEbQJQB8FmrKMpJl LLDF7B6Oyx4/afCl40vmpWj7J71nZlw= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-21f78b1fb7dso31316135ad.3 for ; Mon, 10 Feb 2025 13:27:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fromorbit-com.20230601.gappssmtp.com; s=20230601; t=1739222862; x=1739827662; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=gtOKP/bSIZMX5MzdlHWBebrHFz0TkipWTyjAUPt1uMI=; b=MA39zCUA427/rYtxbWk9pSLDLk00UcjCPIZIJT29JO7dinut73wWk7YcdBCsHtsEjj zo5Z2bMPnOO/4UVWGvy0TOrNXesao1VRVArvmxt+ncDTu0y89h+hj+2RHJCumFGet0JZ MvZ4/9p+QBWowuX4sBIi3rH2fyNCSMevgeLkAiQ/WqGl/UtU4HjgdQzdf5nMN/pndcg2 Ad3KKkxAHERXixyf4vuUpVlSJk809kUF36+HwmpJtnCARtLu4Y4CngST8QSs8fRTRkqw AkyOQJG/l41zZOdSi7Ud9xvagRV7aDrcGZO2XqLdfp1/39U7EMaF3pVauh251qOOhpAx HJTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739222862; x=1739827662; h=in-reply-to: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=gtOKP/bSIZMX5MzdlHWBebrHFz0TkipWTyjAUPt1uMI=; b=DmZBOgC9wZdQ+2ciY7pgIVE8VhIn0/evjjkN4QKuKXSxDBp2kbPrvf1+0K838Z63O0 9emu5JUHZ1QG7bdBd71l+Sog1pss76e3FSiyWDtSSYGpvOx8Lq/w/fITTVKPpK1BitJ4 M3YPi+Lc/218OfQXsi/ceYkv3AwNJKqVPUKVnUlZnDN6hciBnCG3pahlAoh8z6HhgXCi HbdKuZhwnumib1TYGop7+2siJd9Px2m7+zH7Jwc2NPubdhO1rmJLpS8XM8yNToz9RZ2P EfV8E3sJh4kx18HCprvedzlQN4dXQN8jt3wVV/LEyw2RLVitatI8jbMJVmO2hq3mCJmt fanA== X-Forwarded-Encrypted: i=1; AJvYcCXERpvwXCawFng4RQUZmDhKAmtP0L5+hQyvtoPQ+yHL8/bZIUaS1f6WKT9DhmWEPdtQG2k2LSSgmA==@kvack.org X-Gm-Message-State: AOJu0YyqYAKQ1fzH35raY1AlcwqfFzuAfqQyPtLNHWgIOblyoCPusq9n qsB/4Z1ggsvcZyu8geaTjAoG5x1yhKn947JjIBUXdaKzd7SqRucKm/rzaoTTNvQ= X-Gm-Gg: ASbGncs5nEQYcYHjgd0bG6fmxPLn7b78iZQXX1swuRrNSIVdhasVyHXE2o4Qp2pSeOQ pTA9K+vgr9Gdmc83EA93MFRxLkW/KH/tsG0gIHPosBX3kv1FT3wPmxlw27T8qIb1mVGibSGDe3W 9SAcasTae4ErZtje0TDtfnivkF+9mG4aw6s1XI1G0RnQ1LIZXd6lDIlYmHdWkWkVpncvT45eZu3 440OGOkZHFY0ggW6TzD+GmUfzZVHLF4axI4Gqeu9lG7jj+oJb35y0a9B60au20oM5+fHSgrh37g aj+FpBuZ2nvE5Ml5X1wO5+DY5Kj0M7P5osQqsV76hmhpjk3uT6YJPC5ReC2TkMCLaWI= X-Google-Smtp-Source: AGHT+IFr35z0eAENl9HzqdOEk7n54mdmMk8QWjypibe6vwYaIzd14Ua8l2RBxoHpJi316a7c9TtdSA== X-Received: by 2002:a17:902:e802:b0:21f:35fd:1b76 with SMTP id d9443c01a7336-21f4e777b52mr239809035ad.45.1739222862295; Mon, 10 Feb 2025 13:27:42 -0800 (PST) Received: from dread.disaster.area (pa49-186-89-135.pa.vic.optusnet.com.au. [49.186.89.135]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-21f3650e689sm83568755ad.48.2025.02.10.13.27.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Feb 2025 13:27:41 -0800 (PST) Received: from dave by dread.disaster.area with local (Exim 4.98) (envelope-from ) id 1thbJb-0000000HCZS-2H6i; Tue, 11 Feb 2025 08:27:39 +1100 Date: Tue, 11 Feb 2025 08:27:39 +1100 From: Dave Chinner To: Matthew Wilcox Cc: "Raphael S. Carvalho" , linux-xfs@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, djwong@kernel.org, hch@lst.de, Avi Kivity Subject: Re: Possible regression with buffered writes + NOWAIT behavior, under memory pressure Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 839D02000B X-Stat-Signature: q1ijkpefbb3nwguxsjr8j6aw7zouqemf X-HE-Tag: 1739222863-668680 X-HE-Meta: U2FsdGVkX18/rRE+YPdbeYBaKU+gzQKMYDgA02YlUAvptnLfbmuyA50sV9ikMgmRo8WufDobq08g5hiI0yQDQtuAFdulppMosTnhAOvOorWXn9ydGfAMJyLbdyvfzGy2/ABwbfGcSR5V42+m0PEFrcojvDulEbn8j8K2bRVgTCMUZw74Tiwfmj/vpZjM4Lanf0C0MfabhBmFSqEg+5qWv1o8Gdgbh1ZRIArrXwbug2BhyLZJ0faNU64fKy3HoCdNjjF0MFjm5ip/m0aMZ2x4OEJmx7tqULgUvY9i4Q+SjSSBM/iAerydWPMG7JNQ2yl7kayUimitoGs8rT+65Nrwp7aLUPOWJlktN9UoB21MxXz+yXngvwop53flbb1rGnJZXZg32hocVtJSeoAl0HLNFj6YkHs/n/RzHsGpN0nOSjV0yOqNXC7+UdpggfGkVo+EoUXNHFFvFh65e76aAfwRjYaWhiCHsytTeQKCBUV2IoNxRYcfUKNKjXbW+SdWJqsanUnfeJN7/FR0N55MZbUq9hU08Q1HdAvQ5+g8Eiu+HjwtvRjM1gMPN49mA/H7VvpWoYTT2BFHCXZy869CgQjEiDDSvPFoIQd7+yWCu5oLecvtJvK6frak0VmJ2zYhjbhK0UD7KgcD5WkOYO0yqtbdC7KyDuM2Cpf2hqel9RhTDzDAVecN4bc87EwoM6NtZXDjiiSP8QEcEqXx7NnlWGLecCinrCod+TJF3JZhQfYMOOya7QjjMoqLwJ4tSbx2PfQdffmPk0PD7sykAs7myOQSxNgQNtqqgVFR/08wdaKX1cTb9y2fYuIsW/X1FmxMtDa6PLU5wCMSrHlUiK/0yaQiuMPY0LoYq/CPe42QdgalCJ7+Fm4YclriiRCJGQqcJAwrec+Mpm8yw38ODBx/chB5fK4ja7FMzU6SPgKLGiiuSJsuawq5LpDn7qpSAfyf0Qk+mTZ9aXtzOuUlOW7VsCm qwOPHPKO JXpMUJrXxOIbDOqouyPiOBGqtpAt2ghpf0uKVFaJV65IlzmEed8SjC9OmlGsVZ07xntuTjnUgpdWZAvhD7vXdfTe8zK+O4pYAX9LHKHVoP3UXIui3kPrnOpO2DAA2Gow98Bolo1phEHVFiTRWledWZVQrtzz3tNzuj8m2kxR+Got9k2bhqqSy2fp202i/zjynEsU/QjnsJewiWPfCYAas+mavYNNvg/wpb5ez5WkgtGBHWyzct0GrnQsQvRQAHzyShywXKUlX0mUXwQV8bA0j8fgQmQcfCR+tOoMf+wTKtUfMEGKf6SSr4MczXWmAYWt4sQ0rv6zLCpMBntZO3tBNPk6yQ99tFk9xUqUqhoPHV4X9kpdsBnhGLSpv4GDmtGwiqAAf14fvSvxr/LLFHh12BJgwqjbRzFA4SJoP X-Bogosity: Ham, tests=bogofilter, spamicity=0.000055, 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 Mon, Feb 10, 2025 at 09:18:04PM +0000, Matthew Wilcox wrote: > On Tue, Feb 11, 2025 at 08:09:31AM +1100, Dave Chinner wrote: > > Better to only do the FGP_NOWAIT check when a failure occurs; that > > puts it in the slow path rather than having to evaluate it > > unnecessarily every time through the function/loop. i.e. > > > > folio = filemap_alloc_folio(gfp, order); > > - if (!folio) > > - return ERR_PTR(-ENOMEM); > > + if (!folio) { > > + if (fgp_flags & FGP_NOWAIT) > > + err = -EAGAIN; > > + else > > + err = -ENOMEM; > > + continue; > > + } > > Or would we be better off handling ENOMEM the same way we handle EAGAIN? > eg something like: > > +++ b/io_uring/io_uring.c > @@ -1842,7 +1842,7 @@ void io_wq_submit_work(struct io_wq_work *work) > > do { > ret = io_issue_sqe(req, issue_flags); > - if (ret != -EAGAIN) > + if (ret != -EAGAIN || ret != -ENOMEM) > break; This still allows -ENOMEM to escape to userspace instead of -EAGAIN via pwritev2(RWF_NOWAIT) and AIO write interfaces. -Dave. -- Dave Chinner david@fromorbit.com