From patchwork Fri Apr 18 16:27:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ruihan Li X-Patchwork-Id: 14057438 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 90E5BC369AB for ; Fri, 18 Apr 2025 16:27:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D3DE6280170; Fri, 18 Apr 2025 12:27:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CC43F28016F; Fri, 18 Apr 2025 12:27:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B6482280170; Fri, 18 Apr 2025 12:27:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 913DA28016F for ; Fri, 18 Apr 2025 12:27:56 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 0B092808EE for ; Fri, 18 Apr 2025 16:27:58 +0000 (UTC) X-FDA: 83347696236.02.69E9543 Received: from pku.edu.cn (mx18.pku.edu.cn [162.105.129.181]) by imf16.hostedemail.com (Postfix) with ESMTP id 86167180014 for ; Fri, 18 Apr 2025 16:27:54 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=pku.edu.cn header.s=dkim header.b=Pb6AFGXq; dmarc=pass (policy=none) header.from=pku.edu.cn; spf=pass (imf16.hostedemail.com: domain of lrh2000@pku.edu.cn designates 162.105.129.181 as permitted sender) smtp.mailfrom=lrh2000@pku.edu.cn ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744993676; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=MjC1UiVgx6t8vymYAgIB/8OCTv6MNdGah24Cp6lJ0PM=; b=XquKgT1t3C9K55hlopgAmUQg3IAq1RtezAt4vVE9S7OpW2bUmD49CEL7AeJ9xYbkGt4zYA fg6ZZ0ChhmJhB4WbKrODEqQChG6DvVEH//K2fCuxPj4U+lucGF1aXzPFRH5i/SGYCF/ymo IzjDjHP4lDg1fpY+Rzkxy9FrjBwnNIo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744993676; a=rsa-sha256; cv=none; b=ZK0htU0yaRnCQ/0Q/YiKLZf4lOlNrWSEvWUv1u5otbV2D/39NVPzJF4FV+dKkT9gignUJC mycIn3kV+APxt+x4cphxkaVzPtBQGbGtAmYpuCNrIA2PrNpnaXjOb0CX/WmCbsgew+NSz1 HTn//OdLGyPA2tcs5cmCShNwCxoJ23Y= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=pku.edu.cn header.s=dkim header.b=Pb6AFGXq; dmarc=pass (policy=none) header.from=pku.edu.cn; spf=pass (imf16.hostedemail.com: domain of lrh2000@pku.edu.cn designates 162.105.129.181 as permitted sender) smtp.mailfrom=lrh2000@pku.edu.cn Received: from pku.edu.cn (unknown [10.4.225.203]) by mtasvr (Coremail) with SMTP id _____7DwygmBfQJoTxNLAA--.9685S3; Sat, 19 Apr 2025 00:27:46 +0800 (CST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pku.edu.cn; s=dkim; h=Received:From:To:Cc:Subject:Date: Message-ID:MIME-Version:Content-Transfer-Encoding; bh=MjC1UiVgx6 t8vymYAgIB/8OCTv6MNdGah24Cp6lJ0PM=; b=Pb6AFGXqbY9rf/a2nyq/kl7xR2 LYNkgRRdKzIPcy8r8+weWLAVDhKG4g/10Dsq7fzCpsR657KJcznblEAeDo93Lo5p 9oYTqcOKxw1JR5G0IpWSgHuVDbfIlDzUErbhlnklSyOyY3yW0PPCzz1tzZv6N0l9 o1LRaJtuxaYSBDn0s= Received: from localhost.localdomain (unknown [10.4.225.203]) by front01 (Coremail) with SMTP id 5oFpogCXbcd9fQJo4ZwQAA--.9688S2; Sat, 19 Apr 2025 00:27:45 +0800 (CST) From: Ruihan Li To: Mike Rapoport , Andrew Morton , linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Ruihan Li Subject: [PATCH] mm/mm_init: Don't iterate pages below ARCH_PFN_OFFSET Date: Sat, 19 Apr 2025 00:27:27 +0800 Message-ID: <20250418162727.1535335-1-lrh2000@pku.edu.cn> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 X-CM-TRANSID: 5oFpogCXbcd9fQJo4ZwQAA--.9688S2 X-CM-SenderInfo: yssqiiarrvmko6sn3hxhgxhubq/1tbiAgEIBWf35XUDOwALs9 X-CM-DELIVERINFO: =?B?FMI+P6aAH6dYjNjDbLdWX9VB7ttaQFyXTaecYZzOeDisy/krtsX5TsLkpeAzENeCPc 0+BDdXjm5Mlm64oODP/CxX7CfVLni9Tfp1zfQxCWN8VB6Q31UtKCC16PIt30HY+/E8pUc7 d+yaDfFdCcwUIsdrIXjB/DMJ8BbkAvMOkWIiFx0Mg+INz0+BGBeWEvME05QNHA== X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 86167180014 X-Rspam-User: X-Stat-Signature: ozpb14e8zz8payb5638wjo5w8chja5yp X-HE-Tag: 1744993674-724039 X-HE-Meta: U2FsdGVkX19T2IBlNIs0oNnsq62P0N6HeNEmex7h9h+zt94wm4v1+e0YGgPHzuRoRZGdIqsDmFMIKhJmFjXYuJowrGeave16pQpmrd2yR4CVM7K4oIQAxkvyB9obxyL0ko3Cv16rG/PekgPF3oHFdasgP8zswoN5efOVNKkHoDejjuTBzaLjTaRiln3NSESlK5oKaXX6rl877ARBt7r04ueXMNzeoGptjfB6YnIMp9rrcHMQOq/Mqmj70xyT+/75w9mTDlhFE86BSIiJyMnDzDRypYvjs7R0kiFSe4ycmU6ptNWAMkYXc8eInTzieFX4KDxWH9vzMqY8d6YxVrre8EJXTy3U3PlXgZGTv8/4WZw2bKAWKAVOdHT8bMeqaix1TRyjSeZx2PblwE6k/t6tQa2Wk3+EVLGNXKsojeUgMd+Y47j1BLjjmO+VmuxpdHDoLsBSlpmQRda0D+lUO8FXk7fL97//TvBPitUiIq1sAHPd0bm1WSLl4zKomSTlYQYmj2h3XADfjy1FDYebLhsfCNIy+qKwBy+vghtwLSa5xey1E5cInne3ETEoMcEQcdtLzB3/KLXB19bLdMqmBexmbhQPZUqyqC4Nfbv3jR2f4v295exkGiGcRCjB7g9Hzm1gQrYWt9otT2SplmHPRS7jOHB0opnU9YyzMqpZ4tBBTNKtzbMe2ehwGqHpimkDyAycaFUlGPA6NYtPSB2s1j3F39SR/HeYqknt9IGmOvaiSbSEuZNIYpnq3rbt6MIw9/3iD5Z5fGkq21Oh4UHd/UUWaDP/gm5cePMhnLqTD3OCLXAAVDAtB6IUh+5Ndzjdx5f/hnMhWTTte3vCWG9qKWsdfSQji7fiXNDvtwBTS4EB93lYHNDzFeEuxiTqfTaeGEDm+/D9z+Bzg7D7o47+yAwdLkiYd55g09ANRFioiUG3yu3NHibfolzjWYCT0MeleSzSmTZFDfg3FS4DQo71O0x YRmhUPkK aX6IS6wMCTUY9eY9jvhRubFP3QnR3vDg5cguMYUmCrl8hSZoU12sfJcqKMSTNuVrir37oapJuhIYCLO9qvDFNyXuLHnrdoWRwqqX9vwm5SrpjqrS6wykNaDe0L9ymEiFQnUh6fqguf4q5nEiQxZgOJ2+3gR7xJYaJoOoxyiWjPWWfon9Od19QxkG37Qbx10ggNahdIIRpET18rLAurOoFnKFCwLasIjP/nEo3 X-Bogosity: Ham, tests=bogofilter, spamicity=0.013373, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: 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. This commit sets the initial value of pfn_hole to ARCH_PFN_OFFSET, which avoids the problematic and useless iteration mentioned above. Fixes: 907ec5fca3dc ("mm: zero remaining unavailable struct pages") Signed-off-by: Ruihan Li --- mm/mm_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/mm_init.c b/mm/mm_init.c index 84f14fa12..b3ae9f797 100644 --- a/mm/mm_init.c +++ b/mm/mm_init.c @@ -966,7 +966,7 @@ static void __init memmap_init_zone_range(struct zone *zone, static void __init memmap_init(void) { unsigned long start_pfn, end_pfn; - unsigned long hole_pfn = 0; + unsigned long hole_pfn = ARCH_PFN_OFFSET; int i, j, zone_id = 0, nid; for_each_mem_pfn_range(i, MAX_NUMNODES, &start_pfn, &end_pfn, &nid) {