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 442F3C27C52 for ; Tue, 4 Jun 2024 08:56:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A84FD6B0093; Tue, 4 Jun 2024 04:56:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A356B6B0096; Tue, 4 Jun 2024 04:56:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 925106B0098; Tue, 4 Jun 2024 04:56:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 740C16B0093 for ; Tue, 4 Jun 2024 04:56:17 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 1D093C08F7 for ; Tue, 4 Jun 2024 08:56:17 +0000 (UTC) X-FDA: 82192599594.11.13DE516 Received: from out30-113.freemail.mail.aliyun.com (out30-113.freemail.mail.aliyun.com [115.124.30.113]) by imf15.hostedemail.com (Postfix) with ESMTP id B4F0FA000F for ; Tue, 4 Jun 2024 08:56:13 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=fza7eLy8; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf15.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1717491375; 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=EgfUmXsqgmNwj+rMaReGgCA4wiQq2XPkVYnu/r4iAGA=; b=LlfuXR1PTqx4supdtHPYjaUxRi3d8UoQ9R2YMBYrbkLfpvNOH7IGZtUOwNTWJQnsmFI6GW gkYWD9jL5SsBoUZF1d6zYokNYc4MvW8qV/UZ4IL4P7SkLUY5uyRzJSzMwyLb0TV4rqOoTm 4puW/bHcIrzqTqiJlIQLjWmtwygaFDM= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=fza7eLy8; dmarc=pass (policy=none) header.from=linux.alibaba.com; spf=pass (imf15.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.113 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1717491375; a=rsa-sha256; cv=none; b=5GvZ72wpKX5WSQUOeYP5PuWimgk8U1/R5l6DNLujYquvawm9dLZ/s2wJy0QoegLfSK/l2w OllRoD0fxSCoDktyFE94cjFnPvDmpQJYYRm6Y9RjH4+a8dfBjL5qLXHZtTrYDY/ZS4ILm/ Sbb8O5tlqRNpt+EW8m1vUlf4oTvx5c4= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1717491370; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=EgfUmXsqgmNwj+rMaReGgCA4wiQq2XPkVYnu/r4iAGA=; b=fza7eLy854EUMy03P2ggkN3W8OTM21Z2IQYYt24Q2hOLkMaSspGlwObqTC9Yu13YdmJTRdhiPISHhantBm7cNi2g6EfJDN9a+HnAaO3z0di4p/RVYPF/oglLBN2V71Le8x2ONxkKbR6VbQNp2a97Cbrc2ykCnxsrKgIsAsDDRCo= X-Alimail-AntiSpam:AC=PASS;BC=-1|-1;BR=01201311R601e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=maildocker-contentspam033032014031;MF=baolin.wang@linux.alibaba.com;NM=1;PH=DS;RN=5;SR=0;TI=SMTPD_---0W7qIn4D_1717491368; Received: from 30.97.56.67(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0W7qIn4D_1717491368) by smtp.aliyun-inc.com; Tue, 04 Jun 2024 16:56:09 +0800 Message-ID: <89bd659b-a85f-48f2-98ce-f7522cdb95da@linux.alibaba.com> Date: Tue, 4 Jun 2024 16:56:08 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm/gup: don't check page lru flag before draining it To: yangge1116@126.com, akpm@linux-foundation.org Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, liuzixing@hygon.cn References: <1717488551-18053-1-git-send-email-yangge1116@126.com> From: Baolin Wang In-Reply-To: <1717488551-18053-1-git-send-email-yangge1116@126.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: B4F0FA000F X-Stat-Signature: 9t39x75n8bqhxd5nhzoznsonn8qfkyp6 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1717491373-917029 X-HE-Meta: U2FsdGVkX1/S05Nb/gIgflX9hm95Ru3BbRRU6rAk4iVsC8nPo816QTLZx4PZ0R6bXIBtHvJv5dVE9tbawoqtqSx0qe+JhXL/KnmDvwCuLNVtRbIiyWlfImOSrT1TolOzbjKMDa+7lH703Vl0Kb/2D3yR4Qfu7A6vhq7BjL7OforYwHAdNWxKx9iUbwanWXktODzXS1Utd6xjhwg5lOFmH1n1VJOKiKC71xwCsOtBHlI2PSq2d2PGIAa2P1i0i1dqKSoJyvPcj0tEI1//LPl/84Pt8S2Blk5+nbuRu6aeUVND1Du85TJb+65oFMmyP1bzXRdP/leu6yJt11KtaH0aQXVY3C4HApI/aXVVdDTSMU3SZPnaI2F4BVz7ZG41Xt2y7sj7u0Hy+lPIajgnqgYURKqXDO/yhv0FI+3e2zwzf6SryP13fUCDhcfCjyZjAzC0yTLV5AnnDSC2Iw12Vb1+pWj635b+oFSD1mLo8Iw9VPVh8Pqiik4zfXfni7V7Lyt/QhKRj+zNqxDpuC+hl8S+VSrFZtCsWSkqD6UETNYLPqX0oEgtlQ48wLiVhw83ettjISWAusGj1G/i0M9TqNEOlWB+j0g8vuIS4ljxJcMRaEgQ9tQgQmH3KjTooBkd9iSmzbrDHF/8Vr8nnchU8h4Cg15aqs+B8p3tZynzNP/mi1m2OvoKtDr7hovcl+1XLHopsHbfpJnVONVo0t277oDvkADqLNWd4/OD15jH8KJv0Cgs+LaDCu7XX475SF+EcUrrWNU2+EiufngM9dLcIFmrIUtI2MHvqo5IWBtNzhWxQOLD1udUtNQ+0Gv68YVAQzkvr6fsRDiDT7n9h8FLqusa8yk+85FLIjJn9Y6j+IRanFgl1vNktEQHUQv1/o23OOnsbjlNAFqS+2Vjb/AafzSKVrHQXWsig7pFg+jeyMsYUM88n6RjODJHWdaub6KDtiHLMJI5r4Foai8Evh3kXI6 Hxky40cE qlfl+5YurdVcMnCXfjYpeUIEF4wBySxwU2xrDXQdy7LcNNnmjbH1sFRo4LopfFFXmpQiW19oZH6VPU0t+UwnYXC3zJubjj2mmlIls7bjGlpB+KJWdGWPvhoOdROLIV9Hf2rn1A5KncUkYDkXAI8fKZBGv0rJ26HMTRR6NvR1C1lBXuRDSqI4HpyRC1A/TqrPNFEceTkhUPrLXHLBoR/Yb0JkMzGL0tnFfN+StXgk0/ZP8TtBkwkCcpedeIGYkytGeMP/t4lS/voBYzaFPvvnJ8dKLPxskHeV0Hj7Djiw+M2G7rRi8FY+6Z0lzt5mzd6kmqz28 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, 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 2024/6/4 16:09, yangge1116@126.com wrote: > 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 referrened 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 > referrenced by pagevec. This looks sane to me and seems a simple way to fix. > 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 ca0f5ce..890dcbc 100644 > --- a/mm/gup.c > +++ b/mm/gup.c > @@ -2411,7 +2411,7 @@ static unsigned long collect_longterm_unpinnable_pages( > continue; > } > > - if (!folio_test_lru(folio) && drain_allow) { > + if (drain_allow) { > lru_add_drain_all(); > drain_allow = false; > } You should rebase your code on the latest mm-unstable branch, as collect_longterm_unpinnable_pages() in the upstream has been replaced with collect_longterm_unpinnable_folios().