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 7F1C3C71159 for ; Thu, 29 Aug 2024 01:12:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D98AC8D0008; Wed, 28 Aug 2024 21:12:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D47008D0001; Wed, 28 Aug 2024 21:12:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE7B68D0008; Wed, 28 Aug 2024 21:12:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 9DF618D0001 for ; Wed, 28 Aug 2024 21:12:00 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 1C0951A08C2 for ; Thu, 29 Aug 2024 01:12:00 +0000 (UTC) X-FDA: 82503506400.23.7AE901F Received: from out30-110.freemail.mail.aliyun.com (out30-110.freemail.mail.aliyun.com [115.124.30.110]) by imf01.hostedemail.com (Postfix) with ESMTP id B524C40011 for ; Thu, 29 Aug 2024 01:11:56 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=FDDqpwuP; spf=pass (imf01.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.110 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724893898; 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=x27Qgmk5te5XF8Tus0dCeetj7ZtO373FkQjtnrU9nso=; b=d+Sda2JmnwYoS9+E4cPmEIHSRcBiQ51fmRq2YHopxpQuO8wTBrZUdwINu692ngVoXcWCGi OgdE096SRwD1hXp6ViTtJKxAAWC6Po23VdZzPyFsOeoOR0ZniTyqGExgFjsMgt134SdFC1 sjA2iL4kCBVtzAMZ7FLeXHXV9Eqhf08= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=FDDqpwuP; spf=pass (imf01.hostedemail.com: domain of baolin.wang@linux.alibaba.com designates 115.124.30.110 as permitted sender) smtp.mailfrom=baolin.wang@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724893898; a=rsa-sha256; cv=none; b=ipL9+PtOzCKbGOuuJOFhttj3JYD3i6tGLFEiyi5Yfmr2OGabCd4wcWcidEA0zaiV+/WXrT BeGRyIlju4CHDSYCoJjshJRt8QV2iXvDrwLiGY2/y9btd/yaStIcFygWyxbBiS9yiG0dvU h6hN1K8F6naM8qsEt2oi0YkpTbXy5Q8= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1724893913; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=x27Qgmk5te5XF8Tus0dCeetj7ZtO373FkQjtnrU9nso=; b=FDDqpwuPrN4t/bgG6AW/5CoF79nmagBFhZo97wzwn5MNmhDTEsRVdp1gwhPu2H8DSMXZVwXed3hOFzBx10MalPH7v21O4NcJQxyVyNR/j0mlO/g+Gml57vrUbtd5lv95RFpq7dYxUUozCdbSh4UXhnZv9hOuXaLSYkogwTjBY+M= Received: from 30.97.56.66(mailfrom:baolin.wang@linux.alibaba.com fp:SMTPD_---0WDr.tEi_1724893911) by smtp.aliyun-inc.com; Thu, 29 Aug 2024 09:11:52 +0800 Message-ID: <13234a3d-1b12-47a1-ab1f-bd9ebbf67b7f@linux.alibaba.com> Date: Thu, 29 Aug 2024 09:11:51 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/4] mm: compaction: convert to folio_isolate_movable() To: Vishal Moola , Kefeng Wang Cc: Andrew Morton , David Hildenbrand , Matthew Wilcox , Zi Yan , linux-mm@kvack.org References: <20240826040132.1202297-1-wangkefeng.wang@huawei.com> <20240826040132.1202297-3-wangkefeng.wang@huawei.com> <3f8300d9-1c21-46ad-a311-e97dc94eda08@linux.alibaba.com> <606adde7-44ff-476a-bd01-2141eb28943e@huawei.com> <66cfb4c7.050a0220.375d58.00ea@mx.google.com> From: Baolin Wang In-Reply-To: <66cfb4c7.050a0220.375d58.00ea@mx.google.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspam-User: X-Stat-Signature: dwpe4j1urpnj1qgaowd4xdb4drgzne6i X-Rspamd-Queue-Id: B524C40011 X-Rspamd-Server: rspam11 X-HE-Tag: 1724893916-819194 X-HE-Meta: U2FsdGVkX1/kXBln85VXSqr5DQIMHe/ATYoxq8WrVWHL5QDhV5h7cjt6QjShL4M0oZJxDU+ZtX9/Qr/N2YFoZ/F3RAqWxvnuGqjBiEW5/HzACAXJhiIn6Ky1aCVe9XMf5hsiPyDfBg4gWp9JOm3b2jScFhpxTnByDW232okDuUyzmpn7YYBrchMEuLXr3gVqrJIB4iovM2ks01Fe3gg4LtIoxP3+0rCXiN3da9iATh2eEe8emXjyaNFywzy2kR8vz7rlqlhkZVdVEDvdEKCBvCs6IyVZ8hlY6hNyCAgkQn7WW6urzcEIAWNJl2ZGdFRK86NbEFx010Z6l7AuXmkb7eKtxHBp2aEKjBg4wRM7tKHNM9J0py4528Ptb+d2mBxoot2dc1X7Og9ISUAHs+DnLDB4vcojhC2r3OjeaoOQte62Lp5mEqnl9at1D4wxycqUTLtjaUoepOZ/skEb2EF8zPPzoMsSwqMKg+02IrVxs18AlZx8bOF5vAwa0M3OqNg47kA7ua6Pgw+V27q3FeHy6MulerLmYfS4Lj+fcfw3QP5RsSzsdDutNdSGl6lziDc7RYDf+JdjxBAnIb+xVNCCFs9QnJDNXTrRf+RaUGp6S2skiuydGJZEYXHLrIVluSp3vYiDbh5BWtqpcWxVwY/RnpZ+XnNI0IZWUh2q7Y0eRj3qZ90q7jw3kJxhALEVOJXhL4vzeozGU7JF9OvnLAeEx3tXaN2OX5F5w1pjn7Fdg61vryAIkITzanF8C0JpUe5h/Kruo2NwJbJFwf9ZWn4hpU76P4p/vmrkPybXDWYFPwSREJ1sYEBKcWb2Ywvb2jP1+3PPUuvhWBKPC6TylkS6Kun91FGS6w60ni2IdLa0u1Jgxlj5XLe72BHRwLQ+8Z75MetF1/DiWHWMIyrkbDoliw5n2d23jVXB4sQxJa/92sUcA66jvibAJPwf+4jWGQdIIJFflWeec/yNqbh1Czc x9UZxPrl DFdKWKbqk6XALIhrClJm5WK+zDsT6b4q1QmH1gptG3t12zcq/CheZdZlqjSGjxLUzolxAArdxlDmcOcQtUvvJubQPpf8AJkOoMBuiNaMyAhilstmQuaScZcosLBNWrSTmx1Wgq18fhsqsoLAzg+HVL0qYW/y5vCsdrNPi4m5YZbFc1dfkYuuy4MZTCvbDrJ/qGRv4rawys/sWUmRfNdCRPSIIYDwNb07CqeInXTGC2mTQ5pKsYKcAnbL03MQ1AcW1sYe9VoWnkcXpGTTk0FFl0PmGwqW3IFiYAwuPY5noWqzdT7IG8RKcO1rZ0dd6s7Gap3Ca+zbKSF0MLal8X3XDV8Fm+SDHWDIINTCI9X5P3FmI1mbyZMP76smCIRCcmCWEpLqRBRzcR2XZ+dnnuLMO6vm6jXtV6WfBDTA5 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, 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/8/29 07:37, Vishal Moola wrote: > On Wed, Aug 28, 2024 at 08:36:03PM +0800, Kefeng Wang wrote: >> >> >> On 2024/8/28 18:04, Baolin Wang wrote: >>> Hi Kefeng, >>> >>> On 2024/8/26 12:01, Kefeng Wang wrote: >>>> The tail page will always fail to isolate for non-lru-movable and >>>> LRU page in isolate_migratepages_block(), so move PageTail check >>>> ahead, then convert to use folio_isolate_movable() helper and more >>>> folios. >>>> >>>> Signed-off-by: Kefeng Wang >>>> --- >>>>   mm/compaction.c | 32 +++++++++++++++++--------------- >>>>   1 file changed, 17 insertions(+), 15 deletions(-) >>>> >>>> diff --git a/mm/compaction.c b/mm/compaction.c >>>> index a2b16b08cbbf..aa2e8bb9fa58 100644 >>>> --- a/mm/compaction.c >>>> +++ b/mm/compaction.c >>>> @@ -1074,39 +1074,41 @@ isolate_migratepages_block(struct >>>> compact_control *cc, unsigned long low_pfn, >>>>               } >>>>           } >>>> +        if (PageTail(page)) >>>> +            goto isolate_fail; >>>> + >>>> +        folio = page_folio(page); >>> >>> I wonder if this is stable. Before page_folio(), it does not hold a >>> reference on the page, so seems we should re-check the folio still >>> contains this page after gaining a reference on the folio? >> >> Oh, you are right, so two way to avoid this, >> >> 1) re-check 'page_folio(page) == folio', but this need change a little >> more. >> >> 2) directly use folio_get_nontail_page(page) here, and folio_put in the >> following path, this will try to get for any pages, but it should be >> accepted ? >> >> I'd prefer 2) but any other suggestion? > > I think option 2 makes sense, and simply use folio_put() on success and > goto isolate_fail_put on failure instead of isolate_fail. > > With option 2, it might make sense to have folio_isolate_movable() > expect to be passed a folio with elevated refcount. Then it could be > treated similarly to its sister function folio_isolate_lru() and simply > use folio_get() for its reference. Yes, that makes sense to me too.