{"id":2230788,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2230788/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260430040427.4672-5-baohua@kernel.org/","project":{"id":2,"url":"http://patchwork.ozlabs.org/api/1.1/projects/2/?format=json","name":"Linux PPC development","link_name":"linuxppc-dev","list_id":"linuxppc-dev.lists.ozlabs.org","list_email":"linuxppc-dev@lists.ozlabs.org","web_url":"https://github.com/linuxppc/wiki/wiki","scm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git","webscm_url":"https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/"},"msgid":"<20260430040427.4672-5-baohua@kernel.org>","date":"2026-04-30T04:04:26","name":"[v2,4/5] mm: Don't retry page fault if folio is uptodate during swap-in","commit_ref":null,"pull_url":null,"state":"handled-elsewhere","archived":false,"hash":"d4ff5396b36456015d1ff1f7c486b4e1e503e87c","submitter":{"id":48512,"url":"http://patchwork.ozlabs.org/api/1.1/people/48512/?format=json","name":"Barry Song","email":"baohua@kernel.org"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linuxppc-dev/patch/20260430040427.4672-5-baohua@kernel.org/mbox/","series":[{"id":502184,"url":"http://patchwork.ozlabs.org/api/1.1/series/502184/?format=json","web_url":"http://patchwork.ozlabs.org/project/linuxppc-dev/list/?series=502184","date":"2026-04-30T04:04:27","name":"mm: reduce mmap_lock contention and improve page fault performance","version":2,"mbox":"http://patchwork.ozlabs.org/series/502184/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2230788/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2230788/checks/","tags":{},"headers":{"Return-Path":"\n <linuxppc-dev+bounces-20327-incoming=patchwork.ozlabs.org@lists.ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linuxppc-dev@lists.ozlabs.org"],"Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=uJyCN/cP;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org\n (client-ip=2404:9400:21b9:f100::1; helo=lists.ozlabs.org;\n envelope-from=linuxppc-dev+bounces-20327-incoming=patchwork.ozlabs.org@lists.ozlabs.org;\n receiver=patchwork.ozlabs.org)","lists.ozlabs.org;\n arc=none smtp.remote-ip=172.234.252.31","lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org","lists.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=uJyCN/cP;\n\tdkim-atps=neutral","lists.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org\n (client-ip=172.234.252.31; helo=sea.source.kernel.org;\n envelope-from=baohua@kernel.org; receiver=lists.ozlabs.org)"],"Received":["from lists.ozlabs.org (lists.ozlabs.org\n [IPv6:2404:9400:21b9:f100::1])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5gr044q6z1yHv\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 14:17:36 +1000 (AEST)","from boromir.ozlabs.org (localhost [127.0.0.1])\n\tby lists.ozlabs.org (Postfix) with ESMTP id 4g5gr00g0lz2xnK;\n\tThu, 30 Apr 2026 14:17:36 +1000 (AEST)","from sea.source.kernel.org (sea.source.kernel.org [172.234.252.31])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby lists.ozlabs.org (Postfix) with ESMTPS id 4g5gYm2jCRz2xMY\n\tfor <linuxppc-dev@lists.ozlabs.org>; Thu, 30 Apr 2026 14:05:16 +1000 (AEST)","from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n\tby sea.source.kernel.org (Postfix) with ESMTP id 953E9417E4;\n\tThu, 30 Apr 2026 04:05:14 +0000 (UTC)","by smtp.kernel.org (Postfix) with ESMTPSA id 9B00CC2BCC6;\n\tThu, 30 Apr 2026 04:05:09 +0000 (UTC)"],"ARC-Seal":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1777521916;\n\tcv=none;\n b=cyouPrc3ZayDUu3ZtQAGh3vVy0iO7uZoKctr4KLoinIe/Qb74OVNccWYnemTo489WVL7G71l0FfK4luc/tbRKlpMSgGjAijmnlYofATRFMO8a7XeJFdDx+cwL+MJN0J7p9rSxnse7CskD24UJ+QCyQ4TFX5G+DUaq1dRmqMEqG6mPBMHVtRJsrJF7sGUOZKRpA3/kSE321NRfBLm+eNLHPEQJDYzhYydqFS0VQ3QGmEpPUBWCfM96S/EmZYPUXg5iuImN3rZizZ5xv7SPbtjz/szP7QtX0dCr1XLMceCAovKBpXvDQDHDoNR6jdhDpy988cry72i/joRP2qP7rbuLQ==","ARC-Message-Signature":"i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707;\n\tt=1777521916; c=relaxed/relaxed;\n\tbh=AjOwhtb3aLC8dXcF5fdBlXdpp4mSyr4Dq8lBNuOOORA=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=oH2hl5hpfj4ylb1bMnZ2dfufnsOnteFj4ZAfUV8pv8qxlbcRY6GohTDZrWpJ0Kj/Y6DlqwoDGmtatPRI73J+ftQGHtyoEHgcWaQ1MbhRIr8uHR3PIh7Wzi0wTnnTm1PE/atdmYv3DmRNRoqTLk8ghOKbyGt/3I3STukmnnAIi9WOP7cw96XI3AS9dxsXfAL4EjYSpUzcFSRZahaUkjL6QqNxKNlAk3h2nfx3V/ZC0ZsgaMO/wqDl0+3f6Yl1dLZ10i/f7mUSaA0nERZwMxAhH5Lc38d+4VdQYXUOMx4W/XZHv4A4vuooVxjNc8tdDnb7+Me4pDauo2o2JmG9uGIMgA==","ARC-Authentication-Results":"i=1; lists.ozlabs.org;\n dmarc=pass (p=quarantine dis=none) header.from=kernel.org;\n dkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=uJyCN/cP; dkim-atps=neutral;\n spf=pass (client-ip=172.234.252.31; helo=sea.source.kernel.org;\n envelope-from=baohua@kernel.org;\n receiver=lists.ozlabs.org) smtp.mailfrom=kernel.org","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n\ts=k20201202; t=1777521914;\n\tbh=6MPYWPf1QbIXw7VCTkYtFV9yBQTJYYcQnuchAn2u66s=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=uJyCN/cPD0/zuU5TMG/FWh17eVTVcTCG22wyND+Ln22vdCzvScs+KeOLVG9RmOssZ\n\t jDw1d8PhCAGGbMI/IFgx4Z5EBNcmkVO03z+9/CJtVz3K4wxUxjDLHuhXQrygfZY0vj\n\t Mz9EPYWMtvXMUkv1GvrXcIXqYy7f2Nbz3f61nlophvJmqpD4ikN6UOlFyXJonZi3kU\n\t apK9iwjy49sl7fMM6lNjIBPwaa1bmY1pG/z4xtRWqVUh4kt9XKZhnZLwyhRWE61vDF\n\t fxzmTVdxergJndpikZIoTxLjBRYHAUamicyvLwT/yqUnIVLaZSAeOqCic0yYJ36c4O\n\t EWCGitvEei8LA==","From":"\"Barry Song (Xiaomi)\" <baohua@kernel.org>","To":"akpm@linux-foundation.org,\n\tlinux-mm@kvack.org,\n\twilly@infradead.org","Cc":"david@kernel.org,\n\tljs@kernel.org,\n\tliam@infradead.org,\n\tvbabka@kernel.org,\n\trppt@kernel.org,\n\tsurenb@google.com,\n\tmhocko@suse.com,\n\tjack@suse.cz,\n\tpfalcato@suse.de,\n\twanglian@kylinos.cn,\n\tchentao@kylinos.cn,\n\tlianux.mm@gmail.com,\n\tkunwu.chan@gmail.com,\n\tliyangouwen1@oppo.com,\n\tchrisl@kernel.org,\n\tkasong@tencent.com,\n\tshikemeng@huaweicloud.com,\n\tnphamcs@gmail.com,\n\tbhe@redhat.com,\n\tyoungjun.park@lge.com,\n\tlinux-arm-kernel@lists.infradead.org,\n\tlinux-kernel@vger.kernel.org,\n\tloongarch@lists.linux.dev,\n\tlinuxppc-dev@lists.ozlabs.org,\n\tlinux-riscv@lists.infradead.org,\n\tlinux-s390@vger.kernel.org,\n\t\"Barry Song (Xiaomi)\" <baohua@kernel.org>","Subject":"[PATCH v2 4/5] mm: Don't retry page fault if folio is uptodate during\n swap-in","Date":"Thu, 30 Apr 2026 12:04:26 +0800","Message-Id":"<20260430040427.4672-5-baohua@kernel.org>","X-Mailer":"git-send-email 2.39.3 (Apple Git-146)","In-Reply-To":"<20260430040427.4672-1-baohua@kernel.org>","References":"<20260430040427.4672-1-baohua@kernel.org>","X-Mailing-List":"linuxppc-dev@lists.ozlabs.org","List-Id":"<linuxppc-dev.lists.ozlabs.org>","List-Help":"<mailto:linuxppc-dev+help@lists.ozlabs.org>","List-Owner":"<mailto:linuxppc-dev+owner@lists.ozlabs.org>","List-Post":"<mailto:linuxppc-dev@lists.ozlabs.org>","List-Archive":"<https://lore.kernel.org/linuxppc-dev/>,\n  <https://lists.ozlabs.org/pipermail/linuxppc-dev/>","List-Subscribe":"<mailto:linuxppc-dev+subscribe@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-digest@lists.ozlabs.org>,\n  <mailto:linuxppc-dev+subscribe-nomail@lists.ozlabs.org>","List-Unsubscribe":"<mailto:linuxppc-dev+unsubscribe@lists.ozlabs.org>","Precedence":"list","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-0.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED,\n\tDKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS\n\tautolearn=disabled version=4.0.1 OzLabs 8","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on lists.ozlabs.org"},"content":"If we are waiting for long I/O to complete, it makes sense to\navoid holding locks for too long. However, if the folio is\nuptodate, we are likely only waiting for a concurrent PTE\nupdate to finish. Retrying the entire page fault seems\nexcessive.\n\nSigned-off-by: Barry Song (Xiaomi) <baohua@kernel.org>\n---\n mm/memory.c | 7 +++++++\n 1 file changed, 7 insertions(+)","diff":"diff --git a/mm/memory.c b/mm/memory.c\nindex 0c740ca363cc..a2e4f2d87ec8 100644\n--- a/mm/memory.c\n+++ b/mm/memory.c\n@@ -4949,6 +4949,13 @@ vm_fault_t do_swap_page(struct vm_fault *vmf)\n \t}\n \n \tswapcache = folio;\n+\t/*\n+\t * If the folio is uptodate, we are likely only waiting for\n+\t * another concurrent PTE mapping to complete, which should\n+\t * be brief. No need to drop the lock and retry the fault.\n+\t */\n+\tif (folio_test_uptodate(folio))\n+\t\tvmf->flags &= ~FAULT_FLAG_ALLOW_RETRY;\n \tret |= folio_lock_or_retry(folio, vmf);\n \tif (ret & VM_FAULT_RETRY) {\n \t\tif (fault_flag_allow_retry_first(vmf->flags) &&\n","prefixes":["v2","4/5"]}