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 E4D65C5320E for ; Thu, 22 Aug 2024 07:20:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1339A8001A; Thu, 22 Aug 2024 03:20:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0941D80017; Thu, 22 Aug 2024 03:20:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E58608001A; Thu, 22 Aug 2024 03:20:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C59F780017 for ; Thu, 22 Aug 2024 03:20:55 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6105FC129A for ; Thu, 22 Aug 2024 07:20:55 +0000 (UTC) X-FDA: 82479034470.19.B8D5B37 Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by imf18.hostedemail.com (Postfix) with ESMTP id 58EE11C0008 for ; Thu, 22 Aug 2024 07:20:51 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724311190; 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=lOo3KRAWviL5IN6FH/rHiLlfE76Q2ckcsT+2wyMglow=; b=Pky13bHc2micXMqqsu8cI7FrRMr6Zqa0pWBj8qji+oncTadxIMVxVoF1al48+3Do2JxC6B jmHFRa7+yOoC96tKkdce5vvUM2zEgK+H1+4fVUWubMKjd2a3f095lpfvDftMG5n/TCY5ZG hEtCF2/Mpi9xl5xrmLudiTiXXlR4ocA= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=linmiaohe@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724311190; a=rsa-sha256; cv=none; b=STtp4surM4wzrHLP1g9CDHMhDl+X4bJA8HegCzXpM/KNNIE9jhOsYgrjOd4bimRfOkeJCk hUOW+Rq7mAYe418pG6aoLBb+tq+FHbQZAJ0r5KMJZwOBzScS7S2TbWVvBd03OmdFVjyUSg AjC0KOmt5oqbk9ttTF//rw0KR8EtX/s= Received: from mail.maildlp.com (unknown [172.19.88.214]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4WqF3Z4mtvz1j6sT; Thu, 22 Aug 2024 15:20:42 +0800 (CST) Received: from kwepemd200019.china.huawei.com (unknown [7.221.188.193]) by mail.maildlp.com (Postfix) with ESMTPS id DBB2B1A016C; Thu, 22 Aug 2024 15:20:45 +0800 (CST) Received: from [10.173.127.72] (10.173.127.72) by kwepemd200019.china.huawei.com (7.221.188.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Thu, 22 Aug 2024 15:20:45 +0800 Subject: Re: [PATCH v2 5/5] mm: memory_hotplug: unify Huge/LRU/non-LRU movable folio isolation To: Kefeng Wang , Andrew Morton CC: David Hildenbrand , Oscar Salvador , Naoya Horiguchi , References: <20240817084941.2375713-1-wangkefeng.wang@huawei.com> <20240817084941.2375713-6-wangkefeng.wang@huawei.com> From: Miaohe Lin Message-ID: Date: Thu, 22 Aug 2024 15:20:44 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Thunderbird/78.6.0 MIME-Version: 1.0 In-Reply-To: <20240817084941.2375713-6-wangkefeng.wang@huawei.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [10.173.127.72] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemd200019.china.huawei.com (7.221.188.193) X-Stat-Signature: ucgzhkk34w5pbkrf9erq8ejz341mda64 X-Rspam-User: X-Rspamd-Queue-Id: 58EE11C0008 X-Rspamd-Server: rspam02 X-HE-Tag: 1724311251-692153 X-HE-Meta: U2FsdGVkX1/VlDQ7bZrcMkLJ+f/o+Pc2skYpEWytqyt5M/wLwBikJ3FYxln2hDdj08UK9zM35svEFLlX4pXr7k/FGas6ikEh7M9XhIwXg9Iqqa680nU59hxA/m/2wMHDjkDKCxEHro4C/9taakIDekdKAb1jRncvyw56nVDy0NyH4T7P8ggoRPyXYGDzwLBFi0ymvycmpQoHiyijKXFAYyN+KWfvYMLtCM1OrPzk4RmlHK/VM2bYSpKsZ+C3y/RrlYk9I/JvIHEptYJ6W+Hn+GeketIVvvNqrNq/IILx3o63poM1xgST3xx101iZ4c4UEBSDOMFhfPN9TksmrzPllC7vcIZbtcKb7BhvNXavJyBaLK/KVEJJPfaZoFbTUNrEDcPcipZxi04AgZnCESmoibp+u6MNXN6xdJv1RLvJCH8+Rc/3Ozdy+4KE9rPm+T+E7LpoOU6q5XnYTIsXDCabFAj/CyoM6RzFO4WEwlZ9FBIY0+QPXj+e30FMvAw4OCbDexDy59jowu6oke0fOOa5bw4JTvnu13AxNnSEx7237uPhP/E/D/JwxRFWYTgzmq6LWNhlSnk627x149G8chw+uPVFZL9n84cezl8TuNI37PtS9KDplz6EuXT7wsQFkzi1rH1WU5mt00Kh94M1sU5qoIsidobzv5CJ2bc4jN6STCXK2ScYq1MJKCh0+JNQNmrnptzC3kcDiMXUKr3+5PvCc+lmBabqyhj6iLikLLdOIQ49EsaXH5bRVQOdTo1qnXU5qpDfw9uFsyT80LGb7WmlIV63Prm3vOxJ2e8hE81yRYg+tTo4NxSr5TayLuqCV72DEWZFQ4xkPv93Q4ClI0sVcZEOkuFLVCTxIsbZ6Z6QucrxxBqxZWQQuRzHSY6phHRrbCi3Kr/gUowZHXBM5USqYxk/ONIhkLsE0JmTOQ528aFMIWEx0pA4RNQM+sUq5LuphPVpOMK/oF7GUv4vPKl GjHEaW37 4kRa6ppt6UursXq87HTM28BIgT77UGxmDpFA9xjwzhYMV8dHlnJLyzjp5YiexbJ42HiD3vkZpRHSRYoOwixHg82PiFUxQmqcSvgf78rxqp4BC9bspOWgg0zL5Y+Rr41U2EBqCuL9XHgBDnPHFRO8K4g0CgO1N1+nFHIRNw9Qe4jV/lDtOfvJeasUVK42vNZJdtXJZfuWSPgusgRM7Y1ItSwtvRoq5DqbaveTxYEeHhPY2Gc4McHsMdDZpcJaYNXWmh7j8i+tu5GBtEdc= 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/17 16:49, Kefeng Wang wrote: > Use the isolate_folio_to_list() to unify hugetlb/LRU/non-LRU > folio isolation, which cleanup code a bit and save a few calls > to compound_head(). > > Signed-off-by: Kefeng Wang > --- > mm/memory_hotplug.c | 45 +++++++++++++++++---------------------------- > 1 file changed, 17 insertions(+), 28 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 02a0d4fbc3fe..cc9c16db2f8c 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -1773,14 +1773,14 @@ static int scan_movable_pages(unsigned long start, unsigned long end, > static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) > { > unsigned long pfn; > - struct page *page; > LIST_HEAD(source); > + struct folio *folio; > static DEFINE_RATELIMIT_STATE(migrate_rs, DEFAULT_RATELIMIT_INTERVAL, > DEFAULT_RATELIMIT_BURST); > > for (pfn = start_pfn; pfn < end_pfn; pfn++) { > - struct folio *folio; > - bool isolated; > + struct page *page; > + bool huge; > > if (!pfn_valid(pfn)) > continue; > @@ -1812,34 +1812,22 @@ static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) > continue; > } > > - if (folio_test_hugetlb(folio)) { > - isolate_hugetlb(folio, &source); > - continue; > + huge = folio_test_hugetlb(folio); > + if (!huge) { > + folio = folio_get_nontail_page(page); > + if (!folio) > + continue; > } > > - if (!get_page_unless_zero(page)) Does page always equal to head? Page is used in most cases in this function and head is only used to calculate pfn. If not, folio can not simply replace page? > - continue; > - /* > - * We can skip free pages. And we can deal with pages on > - * LRU and non-lru movable pages. > - */ > - if (PageLRU(page)) I think this check is incorrect. We should check __PageMovable(page) instead. So this patch fixes this issue too. Thanks. .