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 lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7E0B1C5472C for ; Sat, 24 Aug 2024 14:53:17 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [127.0.0.1]) by lists.ozlabs.org (Postfix) with ESMTP id 4Wrg0r16jDz2xy6; Sun, 25 Aug 2024 00:53:16 +1000 (AEST) Authentication-Results: lists.ozlabs.org; arc=none smtp.remote-ip="2604:1380:45d1:ec00::3" ARC-Seal: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1724421895; cv=none; b=NzL7GWfYF3w4qdss3dkhpU5GI32Is29vH4/5jaA2fh1Z+jE4kkTKlwffjuXA5+aY9JUUlZGdLxEp6Wi7lBwkBobliR/AEDcDDr3VnmgHKsjfChP+ReEh09Y+khLjELNjI+b/bkhafYT2yKJKj2j1P2grvpAQ+PVE05etvntf9CgGfepD1gYjkjofa63YOxOAV+YBTXao+swlw8PB6XbbsstNvyrEMJ/Kba8v1HsP98xPkbwO4IL484jf3Sxc93+ge1ru4DEVFjWV84LQW3HFSdJwGVnwcpnP9eGWW6b9oXGVOU0DlVgEkYIXWEuTEYH91Gw2dikW0KW1XA6VgkFZeg== ARC-Message-Signature: i=1; a=rsa-sha256; d=lists.ozlabs.org; s=201707; t=1724421895; c=relaxed/relaxed; bh=a1o1CXu9s0gLNyEsswf3RD0XLZSnGikbr5UOFeM9d1Q=; h=X-Greylist:Received:Received:DKIM-Signature:From:To:Cc:Subject: Date:Message-ID:X-Mailer:In-Reply-To:References:MIME-Version: X-stable:X-Patchwork-Hint:X-stable-base:Content-Transfer-Encoding; b=ijl3U0/SILrbhIEm8tQCmQo2/5gYt1dxUIZEENABLsoNoJjrBdA859lcFLdUgYmYDFXuw/ArXizEj9omN+tecHA/bfdsXclgngm0K2iDYBQm1M9B9nJwVdzIrWE9axaP2vg9bJ2L3bLIWwHcB+jpXNnqG+/P+/XD1eN2v/SHi+fZwlSsd6iGBBBxwsi4XrPsBE3Da2nOheZg2MZdLq0XBRbx0u5AoKIbbt0IiZk3BruSgs35Kzs98feeh3nTEeFpX8Qqu64DjC1L+z1JYgsaYfN0P/6pTeckTlm8EIaTIT7qvKFzylgtlg4TfzWy23tbKKKKXgGv+JDpIoZmlTLV5g== ARC-Authentication-Results: i=1; lists.ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=kernel.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=AFgyk4dM; dkim-atps=neutral; spf=pass (client-ip=2604:1380:45d1:ec00::3; helo=nyc.source.kernel.org; envelope-from=sashal@kernel.org; receiver=lists.ozlabs.org) smtp.mailfrom=kernel.org Authentication-Results: lists.ozlabs.org; dmarc=pass (p=quarantine dis=none) header.from=kernel.org Authentication-Results: lists.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=AFgyk4dM; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=2604:1380:45d1:ec00::3; helo=nyc.source.kernel.org; envelope-from=sashal@kernel.org; receiver=lists.ozlabs.org) X-Greylist: delayed 63 seconds by postgrey-1.37 at boromir; Sat, 24 Aug 2024 00:04:55 AEST Received: from nyc.source.kernel.org (nyc.source.kernel.org [IPv6:2604:1380:45d1:ec00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Wr1zW2SMwz3011 for ; Sat, 24 Aug 2024 00:04:54 +1000 (AEST) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by nyc.source.kernel.org (Postfix) with ESMTP id DBADBA426C9; Fri, 23 Aug 2024 14:04:43 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C1C76C4AF09; Fri, 23 Aug 2024 14:04:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1724421890; bh=ZTPbxuQvV6jqCBSrT0OYW3+1G2s/lDk827YHZs04KpM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AFgyk4dMq9LEeQ1YV48tTe61F61mDaxy4+pjs5WYWNlbUJ0c3lma7J7nIKswttW+3 WuUrJtDE706f/XhN56SPpqyW/2HymA/sFwlZgBf7DVJhACpmHTOliTmYkzjBwLHzk/ h7brvsHQ/IZ0gEKFw+DUFE5DvkwsR7C/89VqzkcgUK806Du69nPbDgcXBMIsRxsD4N KgMNYf1E1vX3FbmjS861EmQ0biZHCjJqxZlhrSNw74LOM0Ei08MPcTsxfnr+cTNPMQ qLtGDPdgQGFI5/TPtUzS0MIIT4ggp/oPfogcy+qn7mJ+DgqwlWMtRHsCNkVN7oS9id 9ev4MGH5oBBMg== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Christophe Leroy , Michael Ellerman , Sasha Levin , hbathini@linux.ibm.com, bhe@redhat.com, robh@kernel.org, arnd@arndb.de, philmd@linaro.org, kent.overstreet@linux.dev, tzimmermann@suse.de, rppt@kernel.org, linuxppc-dev@lists.ozlabs.org Subject: [PATCH AUTOSEL 6.1 09/13] powerpc/mm: Fix boot warning with hugepages and CONFIG_DEBUG_VIRTUAL Date: Fri, 23 Aug 2024 10:03:58 -0400 Message-ID: <20240823140425.1975208-9-sashal@kernel.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240823140425.1975208-1-sashal@kernel.org> References: <20240823140425.1975208-1-sashal@kernel.org> X-Mailing-List: linuxppc-dev@lists.ozlabs.org List-Id: List-Help: List-Post: List-Subscribe: , , List-Unsubscribe: MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.1.106 Content-Transfer-Encoding: 8bit From: Christophe Leroy [ Upstream commit e7e846dc6c73fbc94ae8b4ec20d05627646416f2 ] Booting with CONFIG_DEBUG_VIRTUAL leads to following warning when passing hugepage reservation on command line: Kernel command line: hugepagesz=1g hugepages=1 hugepagesz=64m hugepages=1 hugepagesz=256m hugepages=1 noreboot HugeTLB: allocating 1 of page size 1.00 GiB failed. Only allocated 0 hugepages. ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at arch/powerpc/include/asm/io.h:948 __alloc_bootmem_huge_page+0xd4/0x284 Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 6.10.0-rc6-00396-g6b0e82791bd0-dirty #936 Hardware name: MPC8544DS e500v2 0x80210030 MPC8544 DS NIP: c1020240 LR: c10201d0 CTR: 00000000 REGS: c13fdd30 TRAP: 0700 Not tainted (6.10.0-rc6-00396-g6b0e82791bd0-dirty) MSR: 00021000 CR: 44084288 XER: 20000000 GPR00: c10201d0 c13fde20 c130b560 e8000000 e8001000 00000000 00000000 c1420000 GPR08: 00000000 00028001 00000000 00000004 44084282 01066ac0 c0eb7c9c efffe149 GPR16: c0fc4228 0000005f ffffffff c0eb7d0c c0eb7cc0 c0eb7ce0 ffffffff 00000000 GPR24: c1441cec efffe153 e8001000 c14240c0 00000000 c1441d64 00000000 e8000000 NIP [c1020240] __alloc_bootmem_huge_page+0xd4/0x284 LR [c10201d0] __alloc_bootmem_huge_page+0x64/0x284 Call Trace: [c13fde20] [c10201d0] __alloc_bootmem_huge_page+0x64/0x284 (unreliable) [c13fde50] [c10207b8] hugetlb_hstate_alloc_pages+0x8c/0x3e8 [c13fdeb0] [c1021384] hugepages_setup+0x240/0x2cc [c13fdef0] [c1000574] unknown_bootoption+0xfc/0x280 [c13fdf30] [c0078904] parse_args+0x200/0x4c4 [c13fdfa0] [c1000d9c] start_kernel+0x238/0x7d0 [c13fdff0] [c0000434] set_ivor+0x12c/0x168 Code: 554aa33e 7c042840 3ce0c142 80a7427c 5109a016 50caa016 7c9a2378 7fdcf378 4180000c 7c052040 41810160 7c095040 <0fe00000> 38c00000 40800108 3c60c0eb ---[ end trace 0000000000000000 ]--- This is due to virt_addr_valid() using high_memory before it is set. high_memory is set in mem_init() using max_low_pfn, but max_low_pfn is available long before, it is set in mem_topology_setup(). So just like commit daa9ada2093e ("powerpc/mm: Fix boot crash with FLATMEM") moved the setting of max_mapnr immediately after the call to mem_topology_setup(), the same can be done for high_memory. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman Link: https://msgid.link/62b69c4baad067093f39e7e60df0fe27a86b8d2a.1723100702.git.christophe.leroy@csgroup.eu Signed-off-by: Sasha Levin --- arch/powerpc/kernel/setup-common.c | 1 + arch/powerpc/mm/mem.c | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c index 59b4ac57bfaf7..56f6b958926d7 100644 --- a/arch/powerpc/kernel/setup-common.c +++ b/arch/powerpc/kernel/setup-common.c @@ -948,6 +948,7 @@ void __init setup_arch(char **cmdline_p) mem_topology_setup(); /* Set max_mapnr before paging_init() */ set_max_mapnr(max_pfn); + high_memory = (void *)__va(max_low_pfn * PAGE_SIZE); /* * Release secondary cpus out of their spinloops at 0x60 now that diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index c7599b1737099..40f4a31f001c2 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -287,8 +287,6 @@ void __init mem_init(void) swiotlb_init(ppc_swiotlb_enable, ppc_swiotlb_flags); #endif - high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); - kasan_late_init(); memblock_free_all(); -- 2.43.0