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 09F23EB64DD for ; Fri, 4 Aug 2023 01:45:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 878602802B5; Thu, 3 Aug 2023 21:45:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 828FE2802AE; Thu, 3 Aug 2023 21:45:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6F1692802B5; Thu, 3 Aug 2023 21:45:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 5B1A32802AE for ; Thu, 3 Aug 2023 21:45:39 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 305D6A1291 for ; Fri, 4 Aug 2023 01:45:39 +0000 (UTC) X-FDA: 81084730398.19.3AB8322 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf30.hostedemail.com (Postfix) with ESMTP id DC47A80016 for ; Fri, 4 Aug 2023 01:45:36 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf30.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691113537; 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; bh=y6wdz/g+TV5gKVqwcAaj6bO7IIeSolSJchFSEf2WzJM=; b=0NScG0blUGpxZCgOuSPMNxBUY2psqTECF8+rgRa4VEyLW1PlhewLdcL8dgKVDtkWhRaaSw T8WHxVMLRRg5cJW2MCdvW4Dxp2SG8FgkJPdRprAK+dqGy/xXAcPU6kX60l9KpRHIf2lXEV 8LIjqEwF8cobiGwtwQe/fvGvvaqoAvg= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf30.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691113537; a=rsa-sha256; cv=none; b=MQVfyUndfu6BUmDhErAvd4YGL1lCnIHyegqmx35YcwMlOA3FWo5EgFHpbwjzSwUSlIssTn QR3Zyb1z7eLUEX5cFmgZ02CDjD8404nhgDjJyYjdeufLP1B4iGdg3nElvIDlqnZnMZ8wfv uX+jxapemm8S51IkONd6ZZ0wzNHnPPA= Received: from dggpemm100001.china.huawei.com (unknown [172.30.72.56]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4RH7m267YxzVjqW; Fri, 4 Aug 2023 09:43:46 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm100001.china.huawei.com (7.185.36.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 09:45:33 +0800 Message-ID: Date: Fri, 4 Aug 2023 09:45:32 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.10.1 From: Kefeng Wang Subject: Re: [PATCH 1/4] mm: migrate: use a folio in add_page_for_migration() To: Matthew Wilcox CC: Andrew Morton , , , Huang Ying , David Hildenbrand References: <20230802095346.87449-1-wangkefeng.wang@huawei.com> <20230802095346.87449-2-wangkefeng.wang@huawei.com> <001ee9b0-ea25-a896-e3ae-9a9b05a46546@huawei.com> Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems703-chm.china.huawei.com (10.3.19.180) To dggpemm100001.china.huawei.com (7.185.36.93) X-CFilter-Loop: Reflected X-Rspam-User: X-Stat-Signature: 53sik3pdtu9961kbadxnr3z5udrrhhhz X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: DC47A80016 X-HE-Tag: 1691113536-238735 X-HE-Meta: U2FsdGVkX19LGa/8FbtljJ5/1bgtBU04rffCOtpbCX6ZRPN+RKh4/yOGwLPtdzBGgb5Pee9UBhOYSqRsQWmPE1yUAac1rRfa3yNl3eP9Fckfn42ckJHScHafg7WekVTxG3lJf3mt7oyCD/IFcuyVEZLWi/0MEmpzhCrbIvfLhhMfR2f4XOay/tO0O4rkYCyVZSV8V6TAuM1W19KmrMINEgyT/qZ5/2OzgK3ono304CrjLDN6muvuXVLc4lj4Z6ANtV9HpCTnxr1Tww6OmZMzKhqGi+m2nrtrZUPGmmAnu9PHsOx9RLybAbAG1pY+jsPWrAF/q1+cxSQqRC1feQfW9uWCOnha98QBb5kNH/WV9na8n7eCa3ckV31zDls8BxpWLSXgsQkBpi2eQwMGxdjmGokcHZhuxm8KVe8LmgJ4TiMpA2Y85XD4tj6g+X5MqNHjg3VbraGFfjUAYue3sHK00UIMOALRRzZEmCQbobGx8nGOEJPUxGY5bk8Su55fHeSwNLFAKkDXJHKPRZq6a61yxZ4GGaLAb7eclgjV9gjunZb41amhUxgO/YoFmZEauB/66U5Mzk4r3PIdcmjyauYjxhBPkGkmvHRx0W0XbmAYPecD7spnitO8CDeTfq1gisG8yS05yCp55xNQo7ZE1XCCbZ0ZyDiHwCpkajcNEd/+TkkgB8kggjOLqys+qLL4pOZR4P0IYrSnkpuqRr/nbVm3nqBODVoUwjlx4iv3oOBpQEXVcfxSsszcyX/UTxo0Uqyt0iY3AtXybXtDItFlkSvo+68LIHtTJ4Wu4Zr8zEi2VuCoK0YWl28WwPrHv5nHN8vRx0WtsTN5fZpLVHFd0qDuBQYRiR9fS85WQKC28P81Ty5CJQzx7ccH7bPrpMkZjcBu0mAGMHh9F9+a1Cw5X1LI76AxGdGw+7PjEXxRS2x2QcsNUsfCuS2guR774ZmgbikvxiKpEuDUDaBHofKES5F hXNbfPPH +gFooS160AI7pag9NFBfHhFngyxZiJBrBjYZTeXKKEYFIOPwPT0Pw66bowBu0bEpl7yGv4tk/KSDATE8UYKKOJo3JeyOlEkWnowkmcu5u28Rhz5NGqDzmjjfBeddHn0jEl+eNa2VuRPF/F+2JGoUb0O6PRFL3Q77wavZo4aauob+PUwmzJEI3XoY2aQ== 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: On 2023/8/3 20:30, Matthew Wilcox wrote: > On Thu, Aug 03, 2023 at 03:13:21PM +0800, Kefeng Wang wrote: >> >> >> On 2023/8/2 20:21, Matthew Wilcox wrote: >>> On Wed, Aug 02, 2023 at 05:53:43PM +0800, Kefeng Wang wrote: >>>> err = -EACCES; >>>> - if (page_mapcount(page) > 1 && !migrate_all) >>>> - goto out_putpage; >>>> + if (folio_estimated_sharers(folio) > 1 && !migrate_all) >>>> + goto out_putfolio; >>> >>> I do not think this is the correct change. Maybe leave this line >>> alone. >> >> Ok, I am aware of the discussion about this in other mail, will not >> change it(also the next two patch about this function), or wait the >> new work of David. >>> >>>> - if (PageHuge(page)) { >>>> - if (PageHead(page)) { >>>> - isolated = isolate_hugetlb(page_folio(page), pagelist); >>>> + if (folio_test_hugetlb(folio)) { >>>> + if (folio_test_large(folio)) { >>> >>> This makes no sense when you read it. All hugetlb folios are large, >>> by definition. Think about what this code used to do, and what it >>> should be changed to. >> >> hugetlb folio is self large folio, will drop redundant check > > No, that's not the difference. Keep thinking about it. This is not > a mechanical translation! if (PageHuge(page)) // page must be a hugetlb page if (PageHead(page)) // page must be a head page, not tail isolate_hugetlb() // isolate the hugetlb page if head After using folio, if (folio_test_hugetlb(folio)) // only check folio is hugetlb or not I don't check the page is head or not, since the follow_page could return a sub-page, so the check PageHead need be retained, right?