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 4F8D0C531DC for ; Tue, 20 Aug 2024 14:00:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC2DF6B0083; Tue, 20 Aug 2024 10:00:50 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D73666B0085; Tue, 20 Aug 2024 10:00:50 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3ABC6B0088; Tue, 20 Aug 2024 10:00:50 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id A4BF76B0083 for ; Tue, 20 Aug 2024 10:00:50 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 0C77F1601F7 for ; Tue, 20 Aug 2024 14:00:50 +0000 (UTC) X-FDA: 82472784660.03.6E8ACFE Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by imf28.hostedemail.com (Postfix) with ESMTP id 32CFEC000F for ; Tue, 20 Aug 2024 14:00:44 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; spf=pass (imf28.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=wangkefeng.wang@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=1724162384; 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=G+urFRtKTu+Bo6qdwoAaPNz20E1HDfO90ZKzRWeWLZY=; b=QL9mxsEjJK+SjT2a6Gf/v7HQL9VrtWIpV+FPUl105pi3afUdpTsvGocG1YgIpvKMjcd7q+ GjVCNilphywtbDyBUGOu/ya3+vdpKVXJzMeXd/yuaMKZVQ0XzuvOzP84zV0ykj3w3ngmu4 M2oGzAAhpG9wtuDq5HnZW2eymcZBMEQ= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; spf=pass (imf28.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.187 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com; dmarc=pass (policy=quarantine) header.from=huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724162384; a=rsa-sha256; cv=none; b=y3LbuZDR8MVGNcXxas4cq1SPzzE221+WstDhcQYeJOJIj6v6SgONOmLLInR7Ll9jYEsvSm GI8smLe7iQ3xJ/SRs+u8roNiqf2fkwQs63ixhj4IHOyM9MvftYoJw2lLFzFDDb7xGmPHgD YtR09bF1qdwo88lIbFmW6cb1gMXUwDM= Received: from mail.maildlp.com (unknown [172.19.88.194]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4WpB1b1BcSzyR5T; Tue, 20 Aug 2024 22:00:19 +0800 (CST) Received: from dggpemf100008.china.huawei.com (unknown [7.185.36.138]) by mail.maildlp.com (Postfix) with ESMTPS id D4845140133; Tue, 20 Aug 2024 22:00:40 +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; Tue, 20 Aug 2024 22:00:40 +0800 Message-ID: <5bf9cf7f-1c1b-42ec-be31-24b34024d599@huawei.com> Date: Tue, 20 Aug 2024 22:00:39 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] mm: remove migration for HugePage in isolate_single_pageblock() Content-Language: en-US To: David Hildenbrand , Andrew Morton , Oscar Salvador , Zi Yan CC: , Matthew Wilcox References: <20240820032630.1894770-1-wangkefeng.wang@huawei.com> From: Kefeng Wang In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems705-chm.china.huawei.com (10.3.19.182) To dggpemf100008.china.huawei.com (7.185.36.138) X-Stat-Signature: k1j3g47tzsk5fs4u7ozbhqrh3hsjr43e X-Rspam-User: X-Rspamd-Queue-Id: 32CFEC000F X-Rspamd-Server: rspam02 X-HE-Tag: 1724162444-878081 X-HE-Meta: U2FsdGVkX19wWlt+00I4P2URMice52fBjmVStc8nJj4h8WDC3s0vxXjZ2+tl8wQpB7cg6Dii079KC5YDhcAnLkxuJ0gxzwevV8Er2BMAtOsjv2axgKWkhhWnXj/JI7+MbZAibURMUqNeX+X+vvciwS9GJUHdo0s5D/VqmFwvB+p/76KLyeJBqNiCOs9XyTcOVpibaTbAPkAzaLA7lO0qSGfu0PjBoVSjHCDIMlsVrkIazsHQfgk7OpTS8uvV1xv/qiyQuLkKOuBP4p0102jrBosxoRz2SevTs1ZPjSe7WNHHYUyA9SIeAJrjAuexCewkBmah8vqOxHKh+vD9j0s0qEHgbWK2fp2WdTNUqGHe4peXWNreiVfO+YzcT8zZT4ghssajUX63yIRVfxHm5uZ7M48cQ137N/zvnCqgz2KrHUjlrDFo0TIxQpr2DJEuTYXWVCii6k0Ksqna2FsY69s9ZLagCuF2J+dW9h5xqXx98MVo8pMHqdizC7C7aW5ITxGaTu6IbjXs+/F42bq0A3csnd9H/xsSMhgSemWbTewexQsnXzjcJgO96+l9O4ke0Cz1GUwY9jj5EYn1PKZw+OfWMJFlt9D8Y2RaCmoMm8YF2CPmvhwm+3Jf6fNuFtjXCER3cx8PhMwglLYzRfT/rTQkyE/kx2ws1g8XNhJlo6a2u7QgbKFPYPYUe1WBnVrHaRz19JFllYouutIZmDwPI/vEEdhSu+yobO1wWtIOyWcApf4HR5uAhTwg/nY+lPxr9IE7Z7Eieo3yJVsftOevdE1FstP1J48huxTUoSzKYrebfdnyTmC3ZMtsP+8mAu/xW6PmUHk+d+r+GrGXhfNrfQjjRH8fXEijQbDb79Cx6wkBSOpyNq+DvShg/vuJg/lrf9jYCkez0GM/1r/fEYc2fKGtuVKPtAGnM0zgf1At36dYHamufGJQ+01HVIIhH5ri1g8p5oziPGkNq5NN+/YB8jP oG6mErag 0WhIMliXDI2a5VLtH9H7C2Mud3/7VAfTSYA6dvWHOpPtRauGa7SX5fnFTVvHsxIFX78EEvTE4WEmkcOTJ7WdSierS3HycCgu9+xwaM2EUk6GAdorI2CQxCT/8yMa7OtYKmDrSxhJJ6RxSP9d3aeRMBODwO5OrJuOftMQbXgSJxGjUOtKodrflf3u069X/lwp4wxEIdjlcX4hJ5Amrjtd6w029O6sMK2C4njRlVmYCPMR3v+H2sw9dWvNgSaTtaAQ4g6gEZSGhKN2+WT/mK6Mzdw4g/n6VCGRkefoO X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, 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/20 16:42, David Hildenbrand wrote: > On 20.08.24 05:26, Kefeng Wang wrote: >> The gigantic page size may larger than memory block size, so memory >> offline always fails in this case after commit b2c9e2fbba32 ("mm: make >> alloc_contig_range work at pageblock granularity"), >> >> offline_pages >>    start_isolate_page_range >>      start_isolate_page_range(isolate_before=true) >>        isolate [isolate_start, isolate_start + pageblock_nr_pages) >>      start_isolate_page_range(isolate_before=false) >>        isolate [isolate_end - pageblock_nr_pages, isolate_end) pageblock >>             __alloc_contig_migrate_range >>            isolate_migratepages_range >>              isolate_migratepages_block >>                isolate_or_dissolve_huge_page >>                  if (hstate_is_gigantic(h)) >>                      return -ENOMEM; >> >> [   15.815756] memory offlining [mem 0x3c0000000-0x3c7ffffff] failed >> due to failure to isolate range >> >> Gigantic PageHuge is bigger than a pageblock, but since it is freed as >> order-0 pages, its pageblocks after being freed will get to the right >> free list. There is no need to have special handling code for them in >> start_isolate_page_range(). For both alloc_contig_range() and memory >> offline cases, the migration code after start_isolate_page_range() will >> be able to migrate gigantic PageHuge when possible. >> >> Let's clean up start_isolate_page_range() and fix the aforementioned >> memory offline failure issue all together. >> >> Fixes: b2c9e2fbba32 ("mm: make alloc_contig_range work at pageblock >> granularity") >> Signed-off-by: Kefeng Wang >> --- ... >> +            if (head_pfn + nr_pages <= boundary_pfn || >> +                PageHuge(page)) { > > I'm wondering if we should have here some kind of WARN_ON_ONCE if > PageLRU + "spans more than a single pageblock" check. > > Then we could catch whenever we would have !hugetlb LRU folios that span > more than a single pageblock. > > /* >  * We cannot currently handle movable (LRU) folios that span more than >  * a single pageblock. hugetlb folios are fine, though. >  */ > WARN_ON_ONCE(PageLRU(page) && nr_pages > pageblock_nr_pages This should be already covered by following VM_WRAN, VM_WARN_ON_ONCE_PAGE(PageLRU(page), page); // only hint when head_pfn + nr_pages > boundary_pfn ( boundary_pfn is pageblock aligned) VM_WARN_ON_ONCE_PAGE(__PageMovable(page), page); > > But now I realized something I previously missed: We are only modifying > behavior of hugetlb folios ... stupid misleading "PageHuge" check :) > > So that would be independent of this change. > > Acked-by: David Hildenbrand >