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 5982CC0219B for ; Mon, 10 Feb 2025 18:34:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E35E36B0083; Mon, 10 Feb 2025 13:34:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DE3B46B008C; Mon, 10 Feb 2025 13:34:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CABD4280001; Mon, 10 Feb 2025 13:34:35 -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 ADF696B0083 for ; Mon, 10 Feb 2025 13:34:35 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7D7FD120492 for ; Mon, 10 Feb 2025 18:34:28 +0000 (UTC) X-FDA: 83104885416.24.91F076D Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by imf17.hostedemail.com (Postfix) with ESMTP id 357284000A for ; Mon, 10 Feb 2025 18:34:26 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=scylladb.com header.s=google header.b=UezBICAN; spf=pass (imf17.hostedemail.com: domain of raphaelsc@scylladb.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=raphaelsc@scylladb.com; dmarc=pass (policy=reject) header.from=scylladb.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739212466; a=rsa-sha256; cv=none; b=gtD9PxQ7Dlopw0VdLEF1dtmZ7eDywZmb/80/5AhKbMGepTOwZFVwSdS9X3n+S7KjZ/9vOK L/Y963cJwD6l6j3i8TVTDQi48AHezyX/3wF7ZDAlFEF1KZgSNVEy1EpSwqdF+eLGK7+YGr 705MNyno6K2OZjZCRfyD39WugI8G6fQ= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=scylladb.com header.s=google header.b=UezBICAN; spf=pass (imf17.hostedemail.com: domain of raphaelsc@scylladb.com designates 209.85.214.171 as permitted sender) smtp.mailfrom=raphaelsc@scylladb.com; dmarc=pass (policy=reject) header.from=scylladb.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739212466; 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=TtE8Mn8yxuEsrWyQt/824T3+/FuJ+XtVk6ePIzrR3yI=; b=1GdpaRtWvAE/VgmKARmz4UPkJMrjb84pxvZa6ASqeDgivT734mcY9lnK4deO0aADv8v0Bk oFe8Mji5q7z6WJeyrT6ySDL3+hyo270BBBDaByetgUvlUuylgFc1mI5sMK5XZoU1beo5lc dyGWiWH7oP3RUv5wR4X/K/sGLhGfhRM= Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-21f5660c2fdso60410655ad.2 for ; Mon, 10 Feb 2025 10:34:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=scylladb.com; s=google; t=1739212465; x=1739817265; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=TtE8Mn8yxuEsrWyQt/824T3+/FuJ+XtVk6ePIzrR3yI=; b=UezBICAN8YK8GqIWdpvBFBNtVp+5CpvvjLpzCfuorZisJe1Fsx15Ds2f20o7Ghwzsz cexz1SlpzjSMOMsthGkXx5owDow9LM0hAlpY4MXRIsK41ruTqAGN7l3Nu2EcouYDl6lb VdRsOXwogvFOY5zCIUC18XPDfWoEmihNZQgz2Kcxi3Lz4ZdIPGohqPOXA6ZPXrOmUucU IN+WyjVZK0dEZo4mXVXi33APjOhlMO8vMBONpicLw04gRU7bs94nzehgPgGOBFwC5moA 4AWXyyuhu8DU3HHPZrKf2c/qVdU5ovKVC4vbbdclmeyqx1lJFrwwDmPILlQCxUQFqw3t S+KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739212465; x=1739817265; h=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=TtE8Mn8yxuEsrWyQt/824T3+/FuJ+XtVk6ePIzrR3yI=; b=Gdt55WOAdnXMDGP5C7FoYkJ2p+3RoLs/hF5kXUr0UcqfwYNGjY0/K/DDmod5ZUvP7o CbID1uBcgVX7lAx73n4hYhpJedjEzFYTCuZnTVnl/utpvQCnTiV/UOpEgi50maQ13KRq /pMAe2YnUGPwcI9o7WPWVv5FbI7JsCF6EA7vzZda5SlSjvE4JK46b69lBDkey0+o85/o 98EinKdSmqZGkOQ58RtwSOQqtRVvIi8wU3SjdzLHaaEwF78tS1ewx7/kAAKz/eZeutL2 fMDt1Gr1jWMeG4p5VkQhj5ZD5fvK+z381/Syjc2Rz08KO+b+IRGJhO230ZpeI6F0cula 2dtQ== X-Forwarded-Encrypted: i=1; AJvYcCWZ1aoqdIFtT2A/R8hVHDLm1zm2ZbSHRQJOrhctTxw2KcFc94898ExOXb43U8NwpRDdoksdSE+cOg==@kvack.org X-Gm-Message-State: AOJu0YyXeLKKW/S72wV9g7F/ADWzdSy6dhO9lcfH4ZNQKWPEjQCtnVrq Ja0JEX4AnsQAaE3G1gCJI3XxbRR4DONe+xR8+lkIhFTgFcs4E1jkjm2f8DMLRKzySBxTSY+Z9qu /ou3YUlYPplviUaLgSoSoOFqpGVTGx0fGkiE1ZHgYI5hY21eAKnZrcwT82Zpp2IMii3PT6H8mPz ENaiL1FIYEnOLMfo5vCTAG1bx6wRYhjQ3GShN59WSU5wQZ6BUPPmX31x8wGaxq2kk7hWrg6mYXA ap7HrKCsqvsE51KxVToEC7isB/r5SfxEgBAWRbrqqYh0ulPwm0P4zbMTZ/HbiqCM0NFcEVQU94j Q/Cr4jLwns+NNlUmEaJd5Z/hllpsUHTsJqfFoJMlyyWT9AOuRIqG2bIi2O3QqSu+wr8ZNasV X-Gm-Gg: ASbGncuAm1D1/Z7no1NauNkUrdDvBCysM7DgxMPTGJSW19qyP0TpnP5zVxNsPXKaZuB NNx/CNgl3QO1rsfqZHDOHp9GgqGszWoxDVK5m4Uh4eMR6L1qY3NVOnPTCrAhddsm/UzhyR4MllP WhUxpLi2KPN4mjyw== X-Google-Smtp-Source: AGHT+IGMZzGJbQn2M+JIUBkEh5RD6eTxlW+LYFah5rG4D3ms6esly6cH0lvgQtkr+zBFEsKYJcLey9gtT4kURkMhaM4= X-Received: by 2002:a17:902:ea01:b0:216:5448:22a4 with SMTP id d9443c01a7336-21f4e6a037dmr213747695ad.10.1739212464930; Mon, 10 Feb 2025 10:34:24 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: "Raphael S. Carvalho" Date: Mon, 10 Feb 2025 15:34:07 -0300 X-Gm-Features: AWEUYZlSn_nHGLCmKITeKjm9ehxtqZAOMEeXOg252a-rnBJWIdsjsDJhyFDqBto Message-ID: Subject: Re: Possible regression with buffered writes + NOWAIT behavior, under memory pressure To: linux-xfs@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Cc: djwong@kernel.org, Dave Chinner , hch@lst.de, Avi Kivity Content-Type: text/plain; charset="UTF-8" X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: scylladb,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 X-CLOUD-SEC-AV-Sent: true X-CLOUD-SEC-AV-Info: scylla,google_mail,monitor X-Gm-Spam: 0 X-Gm-Phishy: 0 X-Stat-Signature: ssximjfbp41encnxwikcw48np7jtg193 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 357284000A X-Rspam-User: X-HE-Tag: 1739212466-376495 X-HE-Meta: U2FsdGVkX18/ZeN1cbFHfC6rCxhpxFHiriQXDfBJbDKtFUn19yJff9bsPtUxHbB8ljbgkxVXe+BmMGjgIpKQtRQKJClGdLw1oofxyo7rXYj9WtUGHyi2pzUIU8MEE803uF+Gtbk3yw7pi4jz3k13JuSaZMzmquAUBhGCzLnxD0Ss2XisHv/pcU1FOeWXaYf3PLuWpHX4emLmoZUBdoAa6z3iRRtWnm4BDJ0vIWG+nGhbh92oERCsWs1pk/5+ltOZLtgwrePBow8GZNG94D3bALKBCaqKgxaMA8Rs7hXfHA6xWQt4nzYheemoZ94UohYycRDmyCqEklpfTS+gPP5CUw41Hs8vnmjjNAKXmawSDodcMg1VuoTAmfzDsczmUV7idabU8O2Y5YC3Krm4sZUi0bXTMsO7HdwBm17PXnd2M2t2XVzk9l3axMp7ByCPqhVDGbpsY8jjROfhfiOSJX4CWjw/rvPfPrnzzxz0VALzCRpBJ+4AD/u5RP0Pso7AE0tp3Y2j86sRPyGTnZDv35EwYkUT2KWHuph9rp/g2GlFsM/H+UYK2UcY6wJgo0fO93Fn5t2BZ7Xam63BVJQ5mqZfmfWjXH2+9B7SnIDcjr4Juv2GxdGY76zbDI/vhISvHVk9O2jdl6fWweuT/uYDMwbyZ5A7wa+OdI361Pwa4shOUHKDaWGCaJ13DKuuWsQNAI0F6Uvry9FrwZU6SaA5oZW5D4vv6Dpk76iAmUNA835l94WhrEqK5VeWqVcNu7zFxVd9hhca5t6u/8EIQzyytVD+ferjp5ESjWxGBPQQJ9PXxDR3OOSmylFvtdjOfPx1q4ZpyacAZITZoJa6tbdl/8YY4AP+W6BtO2lZrAV6+qmNaV+dApXawyupcQ7wFfvkCZtm8krEFVfWNRIvA6adl2wN0mEHUCWh38xXfMaRzwNI3I59yu9x/CmAPh9xcN9igiha+OT4lhnFuApwA9qWq5n HoTGTrFr OUMYD/J5GPl95DGRto+RP+U4pSYyEfekPHpZHUA3fB9zFv0OzuGd6kH1ZZaDOot7TtZN9jMM6jHRi/INHcaq7l2abbYt583vsMump8jfcAMp9O+TfRUjHuXMkZs+qWWTh3JSYUzcOD4NO7W2V+xbPPCMcIqNqXzTLTdhdzRAM/SGaqhaeyIwmIikHetEb0n7eTY8E X-Bogosity: Ham, tests=bogofilter, spamicity=0.152976, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: > > A possible way to fix it is this one-liner, but I am not well versed > > in this area, so someone may end up suggesting a better fix: > > diff --git a/mm/filemap.c b/mm/filemap.c > > index 804d7365680c..9e698a619545 100644 > > --- a/mm/filemap.c > > +++ b/mm/filemap.c > > @@ -1964,7 +1964,7 @@ struct folio *__filemap_get_folio(struct > > address_space *mapping, pgoff_t index, > > do { > > gfp_t alloc_gfp = gfp; > > > > - err = -ENOMEM; > > + err = (fgp_flags & FGP_NOWAIT) ? -ENOMEM : -EAGAIN; > > Sorry, I actually meant this: > + err = (fgp_flags & FGP_NOWAIT) ? -EAGAIN : -ENOMEM; Digging a bit more, I realized a better patch (assuming regression indeed exists) is this one, since it accounts for ENOMEM coming from filemap_add_folio, which might allocate in xas_split_alloc() under same fgp flags: diff --git a/mm/filemap.c b/mm/filemap.c index 804d7365680c..dcf1f57e0a9a 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -1984,6 +1984,8 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, folio = NULL; } while (order-- > min_order); + if ((fgp_flags & FGP_NOWAIT) && err == -ENOMEM) + return ERR_PTR(-EAGAIN); if (err == -EEXIST) goto repeat; if (err)