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 F3B30C531DF for ; Wed, 21 Aug 2024 02:14:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 77ECB6B009C; Tue, 20 Aug 2024 22:14:13 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72F3B6B00A2; Tue, 20 Aug 2024 22:14:13 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5F6676B00A4; Tue, 20 Aug 2024 22:14:13 -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 3EC856B009C for ; Tue, 20 Aug 2024 22:14:13 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id A035C12080D for ; Wed, 21 Aug 2024 02:14:12 +0000 (UTC) X-FDA: 82474632744.29.EBE2E87 Received: from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191]) by imf09.hostedemail.com (Postfix) with ESMTP id 6CBFA14000F for ; Wed, 21 Aug 2024 02:14:09 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf09.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.191 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724206386; a=rsa-sha256; cv=none; b=3wtFPMlM6oRfn/Fwsv7UnTGN70a127aVOKELsw679sPFDYqIi6bWsLRigHMuUaJdu0TsSH Rcffl4st3K1jXWUn/e0BhYQX70+ieMbWviB1AEaEkASdI9gkI1i7b7giP4549CMcgANqeS SgVYt3Q3hiXQe/LdqjSEKMeWUuL5LFU= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf09.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.191 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=1724206386; 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=w0sMxKnV68yG7CD5TAIcKJ98sQdOCV6At/XOkhIW+eY=; b=L2ZiEEDCCVa5pZa+O2xi2Pe1hTTyRhCjgBQr9yaP+ZeeIx8uNWWTOBU+l8/Nq1Q9B0G0YT puWM1D8Tbg64h2ccqRvVYk48dy1cVSiOqw1hpdsgnua9Sc4yaAfCVgGdNGbrUSuw8fg5Zd QNPbZEQmkebsSKxioUTDjAQoMV/7D1o= Received: from mail.maildlp.com (unknown [172.19.163.44]) by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4WpVJB6ydHz1j6pK; Wed, 21 Aug 2024 10:14:02 +0800 (CST) Received: from dggpemf100008.china.huawei.com (unknown [7.185.36.138]) by mail.maildlp.com (Postfix) with ESMTPS id A22EF1401E9; Wed, 21 Aug 2024 10:14:04 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemf100008.china.huawei.com (7.185.36.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Wed, 21 Aug 2024 10:14:04 +0800 Message-ID: <7095d43d-327a-4e1b-bc94-365c06df2f9c@huawei.com> Date: Wed, 21 Aug 2024 10:14:03 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 4/5] mm: migrate: add isolate_folio_to_list() Content-Language: en-US To: Miaohe Lin , Andrew Morton CC: David Hildenbrand , Oscar Salvador , Naoya Horiguchi , References: <20240817084941.2375713-1-wangkefeng.wang@huawei.com> <20240817084941.2375713-5-wangkefeng.wang@huawei.com> <6df49109-d39b-9852-b5b2-a5b88c9329e3@huawei.com> <927205ab-bd83-4765-b2bb-3fd311f5ac6d@huawei.com> <5aa2f835-0337-d7d9-5ad2-1c5ca2d439d9@huawei.com> From: Kefeng Wang In-Reply-To: <5aa2f835-0337-d7d9-5ad2-1c5ca2d439d9@huawei.com> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemf100008.china.huawei.com (7.185.36.138) X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 6CBFA14000F X-Stat-Signature: oc983uces3edsj6u9knmi5ps6t6u49js X-Rspam-User: X-HE-Tag: 1724206449-169863 X-HE-Meta: U2FsdGVkX1+fJYXHWpPYWskD9g4X2OBVnD1mppheb+hNLAyA+5UMlmPGkodoNK6iLHnTDmbVF42Hgm7mnXeonFXL4YB2KrVnZMnTfqyhFsHxusnLG9kjjEer7XCRBTh9BjOWhBHijiuHb1cAWGrte5GnapAw7yh4sshNp90vq4mzWQrPcIx8PuTSkG0aj7Xuubgt/mIUANGkVDxKiGH0gh2VrgQufmsSrY/dKdXjPPMXXqGEpXkqOh1e2Dre0vqM0QsY5TJHQ5Tvlmj2Dp9rtWPxAN1U2DNl0v9KhPDhpn4Z+4IOiWV0j3/WHED63Ob1Uls2AGAkI+0xWTZwBAHHYt/k98wJC3IlymiBXrgXX90re99xV9oVQWEgBHWSDJ5ZB4a5S24TI7RyhwZM0VoSsuAmDE7t6Q1Hzi+tTC+DQ8izHBIXVorDUISydU4DWsuPtrBjRrJ7lq/ibvCSa+iuCIzMJe7pb+92DRk/FUsN3OdBqFUUlvFPh4uGZIn88YeacXKmzK+BElbKWQ5MBh2hC9UDak66YjK4xQ22RKozKMIWdrQsYZ4fs8etNwULJZ7KblXJgiecPYpsAqiqtHmHwPlZ97Gr8DvkgtLyLGLXgZa4HIoMSqh/aqaGwQBZfdOGzPv7HzWU3qefMOfgBo0WtTPA8dFx49Hnv9Y6Tm1eM+w2TMYEFY61CYSpDNXcTtDXSQF4hXjfBB1hSHqED2HQ6wGOeMvmDpzTCCyn9YjN9VZiy0Rs2AZoKT0jyBPwU89KjNrSOvIBOTm7EHANYIoVXQcdjutayg9O1EyyRRexGOs3JC8z/yE2q2Bcbj8V1irfgBh1kw44TcQKLlrO1WhJZXH0SZ/J2lkseNK4creLIxKe+5Z9scXpxNStfHvahBsGcqX9Vvyh2tDejxziLgxl61vvCYcnw+tKlAyYj519dn4s/K5dkDTIEWYYA4sy3exXQv5PgSSR4/FHGkH8ciu +wkGYCO5 g0KOw8kfMsYP5e3PLsqrBYx2m1cmXKCOrmPyL9aLt/uEWrQ0H31Ol+MeA8pj6PPni77jcIhHf7p1JAmJmcntNBrarQ/LxmYYUtuPHYWfaoVcZlxnAPcZhNK3Qe0LxrENTZMMhTxD48uKup8Vu+eOvFjcX2SYiMRBGVb8YoK8Yhz91WcvUOZelMqnnUW+W7Di2gzZ+8egPL0ktZVMFXN3boCn9XE95JHt6w40k7Ma4HY4KGjKauPqg5L2PYE/TjMH50HtqtIRWVi5Sd9+PESQ1owKaSxXgC5KP4De3q7n0eiJ0ERKK99w7NpMfwqs6xkLsHsiemcwGPBW8nKhiqQ/clf3NxCtedhKVw6/9h41AFznqbqM= 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/21 10:00, Miaohe Lin wrote: > On 2024/8/20 17:46, Kefeng Wang wrote: >> >> >> On 2024/8/20 17:32, Miaohe Lin wrote: >>> On 2024/8/17 16:49, Kefeng Wang wrote: >>>> Add isolate_folio_to_list() helper to try to isolate HugeTLB, >>>> no-LRU movable and LRU folios to a list, which will be reused by >>>> do_migrate_range() from memory hotplug soon, also drop the >>>> mf_isolate_folio() since we could directly use new helper in >>>> the soft_offline_in_use_page(). >>>> >>>> Acked-by: David Hildenbrand >>>> Signed-off-by: Kefeng Wang >>> >>> Thanks for your patch. >>>> >> diff --git a/mm/memory-failure.c b/mm/memory-failure.c >> index d8298017bd99..64a145a0e29f 100644 >> --- a/mm/memory-failure.c >> +++ b/mm/memory-failure.c >> @@ -2671,6 +2671,7 @@ static int soft_offline_in_use_page(struct page *page) >>         struct folio *folio = page_folio(page); >>         char const *msg_page[] = {"page", "hugepage"}; >>         bool huge = folio_test_hugetlb(folio); >> +       bool isolated; >>         LIST_HEAD(pagelist); >>         struct migration_target_control mtc = { >>                 .nid = NUMA_NO_NODE, >> @@ -2710,7 +2711,18 @@ static int soft_offline_in_use_page(struct page *page) >>                 return 0; >>         } >> >> -       if (isolate_folio_to_list(folio, &pagelist)) { >> +       isolated = isolate_folio_to_list(folio, &pagelist); >> + >> +       /* >> +        * If we succeed to isolate the folio, we grabbed another refcount on >> +        * the folio, so we can safely drop the one we got from get_any_page(). >> +        * If we failed to isolate the folio, it means that we cannot go further >> +        * and we will return an error, so drop the reference we got from >> +        * get_any_page() as well. >> +        */ >> +       folio_put(folio); >> + >> +       if (isolated) { >>                 ret = migrate_pages(&pagelist, alloc_migration_target, NULL, >>                         (unsigned long)&mtc, MIGRATE_SYNC, MR_MEMORY_FAILURE, NULL); >>                 if (!ret) { >> @@ -2733,15 +2745,6 @@ static int soft_offline_in_use_page(struct page *page) >>                 ret = -EBUSY; >>         } >> >> -       /* >> -        * If we succeed to isolate the folio, we grabbed another refcount on >> -        * the folio, so we can safely drop the one we got from get_any_page(). >> -        * If we failed to isolate the folio, it means that we cannot go further >> -        * and we will return an error, so drop the reference we got from >> -        * get_any_page() as well. >> -        */ >> -       folio_put(folio); >> - >>         return ret; >>  } > > This works to me. Good, my bad for break. Andrew,please help to squash above changes, thanks. > > Thanks. > .