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 BBB28C369CB for ; Wed, 23 Apr 2025 13:38:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 64AE36B00A8; Wed, 23 Apr 2025 09:38:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 389D06B00A7; Wed, 23 Apr 2025 09:38:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C3ADA6B00A4; Wed, 23 Apr 2025 09:38:32 -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 7D32B6B00A8 for ; Wed, 23 Apr 2025 09:38:32 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 232301CADB2 for ; Wed, 23 Apr 2025 13:38:34 +0000 (UTC) X-FDA: 83365413348.26.792510C Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP id 6B28A100002 for ; Wed, 23 Apr 2025 13:38:32 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=OtTQ35MY; spf=none (imf05.hostedemail.com: domain of BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745415512; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cHeGB9xL4xI+MiA09JZcxauxbai7M3ZdaQGCwpwKwYc=; b=MiQ/ZbO6Xhi5RdwapFMfJdmB4XCgDpuEa3GCsDApw8JfN3s19p4L52BFA12ioif6afw62v Bf0MYwb/c+qaD0ZbQ4ZNUf4xt+VmKDMhjxb4lScw49fNcNkYcDAfks9jDMupPxCSiPoh+P d0lX2txKHKTD5x9qPWbS9psmY27HphU= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=OtTQ35MY; spf=none (imf05.hostedemail.com: domain of BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=BATV+cfb108382ec1185fc08d+7913+infradead.org+dwmw2@casper.srs.infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745415512; a=rsa-sha256; cv=none; b=AxCQNFMntajzHX00S0R78eiVcBOT1b0OvEAiBLyiEOSX3MDRPSsRUzG3CleHz7VCgewRHe OCyls2JAlz6mr0Ycu+mTxPtS/Gj5vhdZAXXgOe4CJN7IJmV1iTE4Uo+/C71N3OR9HTokfk YFFp9byWZyVqsUrBHnGJ6TUOCmpjZ1M= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description; bh=cHeGB9xL4xI+MiA09JZcxauxbai7M3ZdaQGCwpwKwYc=; b=OtTQ35MYVVFzlBDjRKO32e5b7V JKZQap+w4ReSZRYdLvuNEdG20jcGXzJYGgnBZksCtHtYaIHuFZdfJC2LkytvGe0F0Fwvs4jg4VUAp sW4yMAGFT2mfP4qgvYXWTJU07yULYEFsLZcNSNRQ4DnLkDsImYTTYNI7BlCNZaT7xnOOwFJ7hTURw zd8eul2gdbYaM8IY9b3kNtIBy9DUlx7lBDMtsUWjW8oQUg7kw7br8cxrAcVO+vBqFRVpLieTrFVqk Nb74tB4Rciylk8F3fjyktXQmX46ID++vHqpY6w1/bh0yEQHnshvxfwd5p8xdDkK9qOOZNs32RauSB /QfRgfzg==; Received: from [2001:8b0:10b:1::ebe] (helo=i7.infradead.org) by casper.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux)) id 1u7aIx-000000097Ji-2GnN; Wed, 23 Apr 2025 13:38:23 +0000 Received: from dwoodhou by i7.infradead.org with local (Exim 4.98.1 #2 (Red Hat Linux)) id 1u7aIx-00000003JP0-1P6r; Wed, 23 Apr 2025 14:38:23 +0100 From: David Woodhouse To: Mike Rapoport Cc: Andrew Morton , "Sauerwein, David" , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Marc Zyngier , Mark Rutland , Mike Rapoport , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Ruihan Li Subject: [PATCH v4 7/7] mm/mm_init: Use for_each_valid_pfn() in init_unavailable_range() Date: Wed, 23 Apr 2025 14:33:43 +0100 Message-ID: <20250423133821.789413-8-dwmw2@infradead.org> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250423133821.789413-1-dwmw2@infradead.org> References: <20250423133821.789413-1-dwmw2@infradead.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html X-Stat-Signature: qoekyrymafsgmm17m89y4sn5kt48mgmo X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 6B28A100002 X-Rspam-User: X-HE-Tag: 1745415512-762186 X-HE-Meta: U2FsdGVkX18HuL4sU7SLmW0sC2mchi1c69ShKq2f+jyD74Jrxf2omMs4L8F3hFfjX/8V2sinT2gqyIfTRV1TSaZoXU4PpYOYcjYTrFAyxfkE+U9kwxMeaZh+BoQkic1FJwANF9FPz4w22vnVt2N9G1cfy+WbbFRctoFLrILEvY0vBZ2shbRRkhPnnIBQqBU2Q6QVOxDT+qqivfV8HR+WI/rC2DyqqFjDfM0ZFBR6xVYjo418zTXddXL05Pd9FnCOeuGDrilZUScdPiW6cT+Rf7V9MWAUxMosdKgNiyHQvjTNGrondmLNsbtYiAP/twjN4nDsW3ssJgzu5l8u3iA3Ytny4Y6IhiMO7fo5exGuJMQjvKjisDcJ2a0xZCohBJW8z6Gm3rcl4U+b4Sl6MhPcAlPGo37bokiUAOiv8/qAcp8vAXfkaBXUboMMdDstWHQs+ma16aH+wWiC5HD+XD3nmtfG8qFSMSaGEi0AMq/pk2YusIvnbeJtBJbS/ZQxfJ51TnGuWkx66z9PsQ/wBbL56B0jKVu1KWLmRdDurePpPg22vqxXsSbeENNNYcgy8iv92wDww0swfq4oz8JjobqKxVqr8vQSCvnds9eLht7+DkVOG9Nl8FgYonWoDqALjwCAVafI3hKOoXQB6J59AhUfwBrPRguojZSiTUjEL4EVxyiCqiY0Fw6J+WT95df5vasdCawDFvy2ZIXmYHKedBu5p8cxygXlskZB35sBv5Pjq1Wp3cjc4oYJqbjkmBAgtIktcNOvcUpyQ+oxIKrZpDEbCnR1UzQVwZROIYEuryE48astYcRw0Tk6YugGw1QxGaXce6XqJG3Qj636aVXLg5n33FLoCKJ8i5p76aZH1hadJA/czJfdU3kN3ysUkAkLcDkKzfQ6DvPKKd1Wc0mXhInaPlUyBIWBHpe2/TkxE1HdYYfhybQqDp+VDZ1ujm5kU1377P2gpmpK9OMQkC5Ld+m SrjPmNdm rLHOY82bLCjntpP1EBAI1dNjhHAu8ypwLW8uBU4FMSQIsmNBZL2/HvsiUjskgRoOAhwqNO3SzTFCooigbbmgf1HKFHfTsnO9Rz+cH4olRCopWSIH5kJS1kOhwVxGIWBT69hE6He8Ro8E1MLPK6oQnavoCT1buQxJGngEnRS621FgL85BeSCZiMMccDVnduPh0ERUmcSQm2kuV0Vzq1T6bNMIk4fIJCRl5DS6w42hfpFm/O884eeG+6XPMRc9PF6CFawymgkr7VV0ev6a23yrbNggoMva+Yqm2fpdXH2nfhocsMF1TPfNDzJhfIYdpAT5ZSX97LhPiVwkfmbgVzjASvi9g/DAtBM+AL3bt59kxLu3Y85tnJp4uBCpU8+O+noi43H5PZUdjfmkTRvuvOV5lga2fK24GTSdlRgLPKCrdMUUu5QxbA05sF0ZWTevyFbD50GGcUO3tZAUl+c4FzTVbmmLbsMXzANZ2tOhd3cDW/SwDRgBzV9Sl73HbANwMN+V9mphcldIJulN518zKghiVOQf5axGcz8lUlth6aU1EzxL5SlD2JqQzgCwJkA== 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: From: David Woodhouse Currently, memmap_init initializes pfn_hole with 0 instead of ARCH_PFN_OFFSET. Then init_unavailable_range will start iterating each page from the page at address zero to the first available page, but it won't do anything for pages below ARCH_PFN_OFFSET because pfn_valid won't pass. If ARCH_PFN_OFFSET is very large (e.g., something like 2^64-2GiB if the kernel is used as a library and loaded at a very high address), the pointless iteration for pages below ARCH_PFN_OFFSET will take a very long time, and the kernel will look stuck at boot time. Use for_each_valid_pfn() to skip the pointless iterations. Reported-by: Ruihan Li Suggested-by: Mike Rapoport Signed-off-by: David Woodhouse Reviewed-by: Mike Rapoport (Microsoft) Tested-by: Ruihan Li --- mm/mm_init.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 41884f2155c4..0d1a4546825c 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -845,11 +845,7 @@ static void __init init_unavailable_range(unsigned long spfn, unsigned long pfn; u64 pgcnt = 0; - for (pfn = spfn; pfn < epfn; pfn++) { - if (!pfn_valid(pageblock_start_pfn(pfn))) { - pfn = pageblock_end_pfn(pfn) - 1; - continue; - } + for_each_valid_pfn(pfn, spfn, epfn) { __init_single_page(pfn_to_page(pfn), pfn, zone, node); __SetPageReserved(pfn_to_page(pfn)); pgcnt++; -- 2.49.0