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 DA352C52D7B for ; Tue, 13 Aug 2024 14:04:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EC4246B008C; Tue, 13 Aug 2024 10:04:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E71E56B0092; Tue, 13 Aug 2024 10:04:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D60C86B0095; Tue, 13 Aug 2024 10:04: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 B7CC06B008C for ; Tue, 13 Aug 2024 10:04:16 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 5E916A6198 for ; Tue, 13 Aug 2024 14:04:16 +0000 (UTC) X-FDA: 82447391712.28.5DDDE4B Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf13.hostedemail.com (Postfix) with ESMTP id A2A6D2001B for ; Tue, 13 Aug 2024 14:04:07 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=DlmzWdM7; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1723557778; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8I3Nra3W7GsZOjEK1BKC++1yWj8oMDjsVSUtHYfpRv0=; b=U9F1q3Kq/Uwe9+d9K6iZeh6JCtrIAef7WCw6UBa5weutcN+w4GHrQzGQZUzUMyghh79S9Z NSGkLKc2JwNI07AEWmQdjya87KRLTs9go0lmO+StEBmXtsFoEVM8iWsDimzQrc8JAuHhbr ZPvOpoFPmOJT6WrkSwGc/KCK+o3jg8o= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1723557778; a=rsa-sha256; cv=none; b=Ndrkonb1X2FrAjB8ZWLwJtZcLTk2Yzm/W+ViGvZLQ3OmwjczdiXvQoHkC7Ncd5bmBPB4rs MinzcP1PHIe5Nbvk1+9Esat4t63ekYQ8T7Z4AbG4O+g7bDUt672utyIiJSz6chonXpCIJW jLGkymSzcLEISQTbTCiv387FQeWc8Xk= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=DlmzWdM7; spf=none (imf13.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=8I3Nra3W7GsZOjEK1BKC++1yWj8oMDjsVSUtHYfpRv0=; b=DlmzWdM7bOF1UM2SYFqIWeKF9r 2TwW7R7reFc9MAfE0sfFQzvWVcx4HzmtWiW9lL8yXQQmkwFZ/aA05zCV26J2z7BhZO/UC9Hxzd1KJ 88U/cKJtHYZtU0aeZ0ISIBvYX9wpmgx0VJU0GbB0lhrfaUeQfonjKOt5JrNxDPm9LVs3T9nHeccK+ bj9MVeKD+Hb7/0iJSewxeyv3fY9f8/FNxbZsju4gpzWefSdXSbf4Qi/TClGq9n8uIyWKI+Lyk/gAj bjvDxRSpwjNcj2d+9wSyqFZz4YGNLOxSPQp+BnN1+JqSBnPk/AGEjL7DmjiBMo4kZpFWin3FStDH+ wXacyVwg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sds7x-0000000GZpG-2zo6; Tue, 13 Aug 2024 14:03:57 +0000 Date: Tue, 13 Aug 2024 15:03:57 +0100 From: Matthew Wilcox To: Kefeng Wang Cc: Andrew Morton , David Hildenbrand , Oscar Salvador , Zi Yan , linux-mm@kvack.org Subject: Re: [PATCH RFC] mm: skip gigantic pages in isolate_single_pageblock() when mem offline Message-ID: References: <20240813125226.1478800-1-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240813125226.1478800-1-wangkefeng.wang@huawei.com> X-Stat-Signature: ooziqcm7fr9ak1jwwx1hhdtn8dwm73oj X-Rspamd-Queue-Id: A2A6D2001B X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1723557847-501232 X-HE-Meta: U2FsdGVkX1/A1kOm1xvC8wDDpjjAbhlavZjnclbUyWRfErTSkyhpt9QMG7vBf12ZIXi4ygiUEaCgxuDzzgfJ+IKtImqdXkvG6jHysTIm3MG/kVNLYlg4zK7Q3oJxmP5IHTJXL53EzY241aRCuzKpNa/OnaszQKQ00p0wQN+PcZgRNR5mGmlWM3AG3Wcl+qwLVWvYvtzCyZdWhLRoZ5mSIVOEbJw4IGmV/8xPszCUgPMc0HUAsinxUPfGeEO+SrFFCZI5wwpRFnbaD7AucAw/dIOpN0v/gyBaM+8XK4imXywKKsA5nahNGosXBQ6QJ7vuCOrKpa1J5T6tBYCIAlx3LFRv+S1o9K6+0DDtFeD9+VgBrc1G9uB5X98AoQAQzcWQ32x6DEhPSj9gvSoCFR9LNd1Ce59WZvnyX8M70U6QPkjZpW8dSqcqTpVVXxUsORHjg+u+2vjic7IiW8dSlC7MKw6NzCrTeejwJiXMaMlZrSZHcirklt+kMiM4RvIelmCpBsnaVWZSWif6GH92frzsy6OE27F8n+u1aoAa2vRalITJi4X28c5+5ImTQ1cjpLqMZ4l1N3shrL7MzvWK65JFfXcv9/20sjwYjrUjZ3Zf02cHem9d4d7hzccMWBx5HlsVmYznb59WyD63O1t4EIBKTiCoJgWtcfjwcAsi+P7T3wpRQEsbZJBfScznfNlCQ15vzDBN+mzkaAmfcFv2OTCpKn6QbwKrrbKA2S1fs49DuS3LfBSP6zZ+/F/0KrLI1rr0MgibAz2uZ7Ex/P7nM2QVXsR51H/+OchUI+uFWJs4QjhKBnIV8B3PCZOzJMRROQh8paE2rQhLByn3Zv878fFsm7gnGQiYSYqu2VsphkE/5+4isWMMuExT3KzGlcz0UfZtQERQwZKmaajXbfg2ZPmvSlb6pqUqITGgCqRluzbPU95TXH2jvQQ2OezkcNARqCjHXVjdeFg+HrScAwxrgQC 02enfD+E P5338QHetan/yeYeiI/1iT2uuHdI07j9IV0PMbV6RBqqPYOJxDxiWhD9Wp6I/W4fpcGaYoEPLOfLAixe2rYyQ05+12vzyGx2htnwQC8AQCopo9lJMgYoAQj97fX6iQ9veIvVneFdiPxoxXRAn6VWQNFWcJHSmlSnoZEHtsPWymrAw9ZEU6GfFjdRiuPJaZSLd5ApKbwb+4p806vUSFyTPTN94zP+Ks5sLBYNtf3AvnjUvVwFPIcLaaAHqIE77O+4kU3xaQAxUu5/SoK9B6QKG/qcJXg== 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 Tue, Aug 13, 2024 at 08:52:26PM +0800, 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 > > Fix it by skipping the __alloc_contig_migrate_range() if met gigantic > pages when memory offline, which return back to the original logic to > handle the gigantic pages. This seems like the wrong way to fix this. The logic in the next PageHuge() section seems like it's specifically supposed to handle gigantic pages. So you've just made that dead code, but instead of removing it, you've left it there to confuse everyone? I admit to not understanding this code terribly well. > Fixes: b2c9e2fbba32 ("mm: make alloc_contig_range work at pageblock granularity") > Signed-off-by: Kefeng Wang > --- > mm/page_isolation.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/mm/page_isolation.c b/mm/page_isolation.c > index 042937d5abe4..25db4040e70a 100644 > --- a/mm/page_isolation.c > +++ b/mm/page_isolation.c > @@ -400,6 +400,16 @@ static int isolate_single_pageblock(unsigned long boundary_pfn, int flags, > continue; > } > > + if ((flags & MEMORY_OFFLINE) && PageHuge(page)) { > + struct hstate *h; > + > + h = size_to_hstate(nr_pages << PAGE_SHIFT); > + if (hstate_is_gigantic(h)) { > + pfn = head_pfn + nr_pages; > + continue; > + } > + } > + > #if defined CONFIG_COMPACTION || defined CONFIG_CMA > if (PageHuge(page)) { > int page_mt = get_pageblock_migratetype(page); > -- > 2.27.0 > >