From patchwork Tue Jun 4 10:48:41 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ge Yang X-Patchwork-Id: 13685047 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 E6E32C25B78 for ; Tue, 4 Jun 2024 10:48:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 674C46B007B; Tue, 4 Jun 2024 06:48:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5FE1F6B00AF; Tue, 4 Jun 2024 06:48:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 49AFE6B00B6; Tue, 4 Jun 2024 06:48:57 -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 21DD76B00AF for ; Tue, 4 Jun 2024 06:48:57 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C0316160EB9 for ; Tue, 4 Jun 2024 10:48:56 +0000 (UTC) X-FDA: 82192883472.03.D9F7A7F Received: from m16.mail.126.com (m16.mail.126.com [220.197.31.7]) by imf04.hostedemail.com (Postfix) with ESMTP id 7C40240003 for ; Tue, 4 Jun 2024 10:48:53 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=126.com header.s=s110527 header.b=BB6j8MFP; spf=pass (imf04.hostedemail.com: domain of yangge1116@126.com designates 220.197.31.7 as permitted sender) smtp.mailfrom=yangge1116@126.com; dmarc=pass (policy=none) header.from=126.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717498135; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:references:dkim-signature; bh=emKGznr4V0DNwDnZbLylce4/u/GthEKwTnfDwt4vDCE=; b=vXUNkm5djk9e74R2RCgPyWUNHlAeHnLUUz+XCfEACjKWWBCgjySQ4IL7lCrXDJjrQf+1aN 8Xns1jnwr2R/pKeZaYBxD3l86V1X/RrkIpgbc3mZhOfaJa4+1h/8AQdbpRqlnseBPU8lgu Z00OZyIy6WR9HUK6AIasvCepdn9cdYA= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=126.com header.s=s110527 header.b=BB6j8MFP; spf=pass (imf04.hostedemail.com: domain of yangge1116@126.com designates 220.197.31.7 as permitted sender) smtp.mailfrom=yangge1116@126.com; dmarc=pass (policy=none) header.from=126.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717498135; a=rsa-sha256; cv=none; b=QLev747uwwDwn8xY4Tw8H831y3rffUm7szIld0nEEnZfukdrdAnZyGXtsCIqEPPqL1bQOI e7zv5ExurEuvBMpCbIH/U0LTA5r2olJMgCdvtbFzbBysNuVarQWyVIeni1P64RHBJGRsyS 4Fyq0jvQGs1tmnq49BCKT+1eUsY5l4o= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=126.com; s=s110527; h=From:Subject:Date:Message-Id; bh=emKGznr4V0DNwDnZbL ylce4/u/GthEKwTnfDwt4vDCE=; b=BB6j8MFP5Fv95hli9V11jArmhseLDPr5zY qVIptYp+xHRgBg1DXDR9tt7/Dkl5Wpyn61gKSK7FwMZseEb2OZMjHjJixK+nwljg VM2xCI3AyCES27fQA5Cd1J1l3ExFVz8agbD6LPP3rXSMb2hpLCj0Z4tcxpkorwfw MT4uEqLmI= Received: from hg-OptiPlex-7040.hygon.cn (unknown [118.242.3.34]) by gzga-smtp-mta-g0-1 (Coremail) with SMTP id _____wDnjxYL8V5mY7QUAA--.8619S2; Tue, 04 Jun 2024 18:48:44 +0800 (CST) From: yangge1116@126.com To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, baolin.wang@linux.alibaba.com, liuzixing@hygon.cn, yangge Subject: [PATCH] mm/gup: don't check page lru flag before draining it Date: Tue, 4 Jun 2024 18:48:41 +0800 Message-Id: <1717498121-20926-1-git-send-email-yangge1116@126.com> X-Mailer: git-send-email 2.7.4 X-CM-TRANSID: _____wDnjxYL8V5mY7QUAA--.8619S2 X-Coremail-Antispam: 1Uf129KBjvdXoW7XrWktw4rXFW7XF1rJrW3GFg_yoWDGFb_Ga 1Dta48uan8XrZrZa4jg3ySqrZrWasxCr4DGFy5Xr17Aa45Xrn8WF1kAF4ayFWxWw17ZF93 Wr98ArsxCwn2vjkaLaAFLSUrUUUUjb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IU045lUUUUUU== X-Originating-IP: [118.242.3.34] X-CM-SenderInfo: 51dqwwjhrrila6rslhhfrp/1tbiWQrzG2VLajM+uwAAsJ X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7C40240003 X-Stat-Signature: wxh7ys4xh458cawrcmhfg3t9y1xca1p1 X-HE-Tag: 1717498133-744607 X-HE-Meta: U2FsdGVkX18/ukC1vsGAkwmvkb7cMh73pRaRSfTKQXblPPlDqYorNd3rIjfizmUjmrjeNmq+CvSbntfbsk36j7AxRyotN9pzDekQKUxZMa7RUYd9ieEg6C6eEBzkEYExl5bYtF+57ay6oU1uJMvgF2yXlfDF10qFrH5YRGY2zA1vFHRfi/cNiR1giW5b6YISSxKMBlzNgK++Pe/v5gkBa68UqMzLlHfEmMbqmmGC57Cggr+qk/5lIbSuaR53fyEMtnFawvcm8P4eAdmHUt28XP1JBm9wZ3C/ZzDvEF4IVzI8I2y6020JXjBZ0Q6Z0zI096VdxPqEMzTw5yIkysTWseFcw+tqbjgyoZH0nJNt2LFnAiM21kdsJLiLFDoFpLsxgcjTlsTk4RlHRtEk5iQCq9wca+9YGha028Hp7hw9CfxSQbUYjg9GjQG2PKiZXQ8BJFWEJxNSHiElSJejvPo8Fey392WhR16hZ52edRtpNWNlm/X83/zzCyhiBnBbzZNTh17TuEkiQJjPfkfZEKO17eTVzXyGfOqbxxXpj3xWmwMQxYWnBd+i5RiNeRJi2LtfAs4eTeo4HLq69FikrLpTn/BG3lLLoPBPG0ZeDKq7QUV6d+vKc0ORItJqdc/zDMtW8uQyviXRkr6qCn4HgBPIYoGh3RuIQzaz3UstTKLLd7kBK9S6di9Hx79YqM38yMjZvy784OzDyJYsc0qa/JaPFLp3NbsqmapIE0CoFaBQJPnliks2kP9RBG+eN/zcZ2nhKnL1Fem8dy6OWLiM1MbUOAMUOGgIewgLmaFyAMxAJjO8xX4I5YaHdrn56NIEGfu7cc9GM0hf8KSZvWua/Lri1XlM1nrj/gaWHSB3w9Drmlc6xg/f0TtYDtGEJ8SAHPVvR0Ldu+Ye5AsLQ3GO1tVwxCtsmBxBIdRkcEiKkf7DDWKIR0jpvRBa8m/hDAnCk3gU+CSZnYffEAiSZ74fPei Ud82Haow S+RyZOBhvVv/UYR1bNw6s6YcWBvq80urgSTyJDgOOjXAoIZkPhFoM5Vjq4aeEH6sdhSqwF/+LNs5tAw4lGDgkKDAx3xLeAKjI8OB1KS1YIeSR0cl9llpkkPKlKq0zWkOzr5MQCC1SWk+I98xJJ4veirb/APYU+ZYCp8NbKSsUJcGq+KyahDW6G/4QCbAnheVttOPKZV0Ncf1rJoAbojqFNl8h1CybXoBgJrAXjxSMOT1z9FVwX2LsTAVxPHAkKsv/fiDa X-Bogosity: Ham, tests=bogofilter, spamicity=0.000002, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: yangge If a page is added in pagevec, its ref count increases one, remove the page from pagevec decreases one. Page migration requires the page is not referenced by others except page mapping. Before migrating a page, we should try to drain the page from pagevec in case the page is in it, however, folio_test_lru() is not sufficient to tell whether the page is in pagevec or not, if the page is in pagevec, the migration will fail. Remove the condition and drain lru once to ensure the page is not referenced by pagevec. Signed-off-by: yangge --- mm/gup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/gup.c b/mm/gup.c index e17466f..4fa739c 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -2460,7 +2460,7 @@ static unsigned long collect_longterm_unpinnable_folios( continue; } - if (!folio_test_lru(folio) && drain_allow) { + if (drain_allow) { lru_add_drain_all(); drain_allow = false; }