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 91A86CA101D for ; Sat, 31 Aug 2024 08:36:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 200826B00DE; Sat, 31 Aug 2024 04:36:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1B0748D0013; Sat, 31 Aug 2024 04:36:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A1336B00DF; Sat, 31 Aug 2024 04:36:16 -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 E193F8D0013 for ; Sat, 31 Aug 2024 04:36:15 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 67B4B140A3D for ; Sat, 31 Aug 2024 08:36:15 +0000 (UTC) X-FDA: 82511883510.19.3F8E2C7 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf27.hostedemail.com (Postfix) with ESMTP id 8200440003 for ; Sat, 31 Aug 2024 08:36:12 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.188 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=1725093301; 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=m1FitOcXhYqLp+KU9qEuM2ej9K03jIVKqSAv/L90q9E=; b=L/bUu9RZpHt365ssjjx8V6MfTFFK9Io9tPZHrgjOATm3ybLGnX5x4o5EU/95xoOfqSLh9q 2gmBsi7b9FG5KYAdccTIiV8v5Q+UZl5QjHXigjppkb5GbhUSBcvQx4+uMPc1+Xu/p3z8RW cdx2baFtEEv9pvn9BrRhtBSfKVBZZV8= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=none; spf=pass (imf27.hostedemail.com: domain of linmiaohe@huawei.com designates 45.249.212.188 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=1725093301; a=rsa-sha256; cv=none; b=KYaxi+rh0N9h6YEovN9wAHhoPgUyUjnfjHS/HNyv0V12Xg+aqY9fxdlUBjG7AlNkpjdbi2 fyYCEIlR9KYWJqBYzrt7HwfSFQtCMbVenqmGwKPPM3MGrx+s93tOm2ZAOl5RzM3SjnzKA1 Q0e+UEshHa2FqX/MTY9v2KIDAQFLMfo= Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4WwpG24VYmzgYp4; Sat, 31 Aug 2024 16:34:02 +0800 (CST) Received: from kwepemd200019.china.huawei.com (unknown [7.221.188.193]) by mail.maildlp.com (Postfix) with ESMTPS id E166C1400DC; Sat, 31 Aug 2024 16:36:07 +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; Sat, 31 Aug 2024 16:36:07 +0800 Subject: Re: [PATCH v3 3/5] mm: memory_hotplug: check hwpoisoned page firstly in do_migrate_range() To: Kefeng Wang , Andrew Morton CC: David Hildenbrand , Oscar Salvador , Naoya Horiguchi , , , Jonathan Cameron References: <20240827114728.3212578-1-wangkefeng.wang@huawei.com> <20240827114728.3212578-4-wangkefeng.wang@huawei.com> From: Miaohe Lin Message-ID: <0e4eb9c6-c3bc-98e4-309b-50e760e753c5@huawei.com> Date: Sat, 31 Aug 2024 16:36:06 +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: <20240827114728.3212578-4-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: dggems702-chm.china.huawei.com (10.3.19.179) To kwepemd200019.china.huawei.com (7.221.188.193) X-Stat-Signature: jp41wkq53rgtardcf8e1ubqixk1j54zs X-Rspam-User: X-Rspamd-Queue-Id: 8200440003 X-Rspamd-Server: rspam02 X-HE-Tag: 1725093372-949992 X-HE-Meta: U2FsdGVkX18iROZ2of6iB66JyGK0otFCIHNrROhko4gfrk7n63aHV0h+OLuMHfbSnW1hvkAFeFKU7oTQfYFxItIzFPfp0YwVmNHFRk2+/MOoctt3tIEtaIJVSscE70qcLoBnP3HkEgAy1k7oQmY/w1gW7/hVvWOdoIJcMcMgTq1qX2Go5T94JQqkRjgbqTqdol3UYg+LV9P2ElOrUrmnFBFl6Nz/ydy7/+P0daw2JA2BcHHG2V/Q63K1ldBCLbvQbK48HX4QOjNzP+oCnkJmhIgG9ihaX685T99zLwEeZwsDdTOtAQX8lm7BT/n4o2GdkQzLw+kxW3EK3zYhJZohPK8Ehu7x2MRmSNliWgTQvzycC91/ffjuCMI8KTIa2I5NdlPSh09+MMAhAqsZK7cze8lEcMl2HKXA6etUWKBmGtZPDsyO4KHKkukXG6Ut66WPiVZDG3Qxznli0/f1GALblE7Kg3To8Eq1DDs2+c0Wg5W/0bZA5/xID36zMLLjiinKcS7KiMEXmpUrtnTi8LOpj638srhEX/0Pt7iXHE/G2kCORG1ASkc60nSlKwuu83RUdAbYOiGzORVnistboLTc6IeAgmRPagfWNsEFXUse/oJXkHx98dgtBbJlLlYq+1kW206UVuqKu9VE1IsoonR1/m2FDyKjXhNE45Tty4WbUf7lVgmTIrItnlgMBKhSy8HNR0kmhqLmv0+CodiwrZabHRTmiG1Ri5w46TjVVxF1eXrCqxFAqmEDmeuged/FxOgS29raeFbK5fzmaQg2ecfpXQDtP06CeqUu062kii89hFB4RPeOYr/oHGHHpArHJEufQz/gbQNkyauiSpwOHEWfI9hzW9iSriWuknhzHkVx9V27okZ69g9R5FY+KK78Zgq24AgpwEoqczyExHvEcHFVAlWAa4a/nX6BzoJI8S9Eo0uS3zB6vCK4WtVp+oCwaPiTNLDYJ8024DWXZqZ/rkO 5rdM+usK xV9Ru6ccTN2uRbvFfed000ZQw1WKER2c1FFcY4pHC6DskTOQu1tOLWIeCmW0eLNjltzOZwUiD9puaVhdeAdKjHJ0LjNw7RmAf9FZLOef/IR3uS6ytNxvKsW6w7tfgNAg9vk8KZQXM/6AS6KqtvoQV3gxvtG1jQJltBdMtBGQWfR58rdAzWNyP5DPdx1fgiR3KM4skFV85EWbUkKTWBbHzSfwhTPr/t6gtHYNH0SnPkepdn3qnhz1AnSg2jyoNgUHrXwSeoHgAvV3s05bKfSWPlLXlfIdnjIeXHYnd4yUVb18y0OQ= 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/27 19:47, Kefeng Wang wrote: > The commit b15c87263a69 ("hwpoison, memory_hotplug: allow hwpoisoned > pages to be offlined") don't handle the hugetlb pages, the endless loop > still occur if offline a hwpoison hugetlb page, luckly, after the > commit e591ef7d96d6 ("mm, hwpoison,hugetlb,memory_hotplug: hotremove > memory section with hwpoisoned hugepage"), the HPageMigratable of hugetlb > page will be cleared, and the hwpoison hugetlb page will be skipped in > scan_movable_pages(), so the endless loop issue is fixed. > > However if the HPageMigratable() check passed(without reference and lock), > the hugetlb page may be hwpoisoned, it won't cause issue since the > hwpoisoned page will be handled correctly in the next movable pages scan > loop, and it will be isolated in do_migrate_range() but fails to migrate. > In order to avoid the unnecessary isolation and unify all hwpoisoned page > handling, let's unconditionally check hwpoison firstly, and if it is a > hwpoisoned hugetlb page, try to unmap it as the catch all safety net like > normal page does. > > Acked-by: David Hildenbrand > Signed-off-by: Kefeng Wang > --- > mm/memory_hotplug.c | 20 ++++++++++---------- > 1 file changed, 10 insertions(+), 10 deletions(-) > > diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c > index 9ef776a25b9d..1335fb6ef7fa 100644 > --- a/mm/memory_hotplug.c > +++ b/mm/memory_hotplug.c > @@ -1793,26 +1793,26 @@ static void do_migrate_range(unsigned long start_pfn, unsigned long end_pfn) > * folio_nr_pages() may read garbage. This is fine as the outer > * loop will revisit the split folio later. > */ > - if (folio_test_large(folio)) { > + if (folio_test_large(folio)) > pfn = folio_pfn(folio) + folio_nr_pages(folio) - 1; > - if (folio_test_hugetlb(folio)) { > - isolate_hugetlb(folio, &source); > - continue; > - } > - } > > /* > * HWPoison pages have elevated reference counts so the migration would > * fail on them. It also doesn't make any sense to migrate them in the > * first place. Still try to unmap such a page in case it is still mapped > - * (e.g. current hwpoison implementation doesn't unmap KSM pages but keep > - * the unmap as the catch all safety net). > + * (keep the unmap as the catch all safety net). I tend to remove "keep the unmap as the catch all safety net" too. I think it's simply used to describe KSM scene. Reviewed-by: Miaohe Lin Thanks. .