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 C4EF2C4332F for ; Mon, 30 Oct 2023 04:22:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EC9FD6B017D; Mon, 30 Oct 2023 00:22:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E7A566B017F; Mon, 30 Oct 2023 00:22:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D68446B0181; Mon, 30 Oct 2023 00:22:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C32FC6B017D for ; Mon, 30 Oct 2023 00:22:47 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 7722CC07C4 for ; Mon, 30 Oct 2023 04:22:47 +0000 (UTC) X-FDA: 81400831974.04.6A97995 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by imf28.hostedemail.com (Postfix) with ESMTP id D14D7C0019 for ; Mon, 30 Oct 2023 04:22:43 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1698639765; 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=ZZujj3X6f3LEq9ycIg7CJ6NcZywesE2mvEzbHAwQFHI=; b=e4AnnEYSvRbTZHHpx/d3ExmwaX4mDoOXJQpRvO4xPLCkjwrUvIGxOw/X22nZVtkdmbLwea jNLufYtvrio908fygoekWnu0mcjVcyWt69jmW2+Nj9ovrCwVti9teO2NvKXZkgw0FRRyKP Vp7pmOz72/7X015tlhPT95JHDXPCyU4= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=huawei.com; spf=pass (imf28.hostedemail.com: domain of wangkefeng.wang@huawei.com designates 45.249.212.188 as permitted sender) smtp.mailfrom=wangkefeng.wang@huawei.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698639765; a=rsa-sha256; cv=none; b=1m3w5rYZlVC3prqisS3wIhq0oF7kD0yyxWjKfWb4XtCoOS1+SEvT49W0GRavrB0Mj/aB5x DoQFXp+/rwKAGG8iIo9HIiTKkV2BweKlP+C5+7Qi3ui17nAFXtqppQjBPTBIAQkhiYIYQB nrDodTVHFCzGfz2E2N6FX06rdJ9y1j4= Received: from dggpemm100001.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4SJg4V0qPdzPnny; Mon, 30 Oct 2023 12:18:34 +0800 (CST) Received: from [10.174.177.243] (10.174.177.243) by dggpemm100001.china.huawei.com (7.185.36.93) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.31; Mon, 30 Oct 2023 12:22:38 +0800 Message-ID: <834f7386-a045-464b-979e-e657f8e248a8@huawei.com> Date: Mon, 30 Oct 2023 12:22:38 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] mm: cma: report correct node id Content-Language: en-US To: Nathan Chancellor CC: Andrew Morton , , Christoph Hellwig , References: <20231019013253.2792048-1-wangkefeng.wang@huawei.com> <20231025163703.GA2440148@dev-arch.thelio-3990X> From: Kefeng Wang In-Reply-To: <20231025163703.GA2440148@dev-arch.thelio-3990X> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [10.174.177.243] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To dggpemm100001.china.huawei.com (7.185.36.93) X-CFilter-Loop: Reflected X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: D14D7C0019 X-Stat-Signature: 3iagcyd8674m43k94skfn7cem6koawau X-Rspam-User: X-HE-Tag: 1698639763-200176 X-HE-Meta: U2FsdGVkX1/Wp00/Cj45WkHqnH+rp1KiJoG91u3gpEVlWYpSRW2HgkCjxNqzFiCrHituhBEg+R+nVpT7vNHu7LpP20Qwt5jFFt4Uel2XwcK+XGZwqwM8WLVoAlnTd8TNcJmfF6D5kyvcglSs31MZPoebiDFNI1swSzlb21I6VpAepflgT5LmRtQVqjTPnlMCfvViYP74xbu5R3TOPnnd6yeGHg7J4FiJuHdAF4TTZsILQgb3icrOwDT4kix6bWXb9MoZjbN2cOnEgf/x1t/poTvMQC/+9ao90SMcOTN0zyn4smDhEbePrxnYJuMILCUL1tOO6zqAGhZEUdPl/rmfDWFfuL2gZy8J1rMHWmwFno/oHEQZ6O2QHouu72XTHVpBv/7SZRmrXpz2C9MCoIHKWetjcRzMz9creEAXx9ZD66OgwcJXcVpEzxQTgcfPLbUFPINKYqETaKW7XQcL868nVcD6smuGDiUnTlt/k/nnnS9ePwiTIrQJCi8MIjFWIvh7rGbfH24Z98aGuAp+hGTlbw5OiCbKlRBTrbf/CLmWgi2pfLAPIWEZ3PxRKrv2nkllAa47jOalWF0CAGGbe/blFHi85FANaMJyAHOfTj7xIPJTZYIgg0AaRbzzYMAcFitiaTJha+FXw9tngj1Mhum21tpi0NdGOuzLBFdLYZyvVu3/9/sMHKVc2AZ5BI+aE/RDKS/5m+/AIAsJzZk/1HctiUBaSh4ypeDQr93giXIVdcGNBovnU3+KiXdDqatfl07unGBiDzy7LneQvqeyhkrIsUwRoeuzJvDb9+nbv4mGj/Uc/2DP6Q/OFnfSWfNaFfJMY4Oll9cNhJZfbOWTYnQWXurjJwR8GB/WsaSCaZ3Lh72NRqllBfo2wWUgGLZyHXuS2S1ctxyqbi13v2vBZn6jJUgvyarCEvudGk2mjlm9Q4+A2z7mHT+rh7F8FOlESLJO+ZnnY3VEPG0fXDoR7i4 iHlBMgx+ V3i69BiCEnF73ZPyxDqq90RH9IkXDDdrOfuiGGvaSH2BIBFqxZ9AIGkUNnDpwV7XvlZgwCf6WPUf0S6mbopWYAvhtebT/WKW7I9NBbSZxzNO2tbGklbUXOIrpPX6s0b5lAbCeoOaa3BBgQaTJmpVM2muxTLbXBP5WdF48qxTKWXY0Hydls7/fGSqC3Mh+tenJCP4K0WKFomTk0DUFj/CtnoSefA== 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 2023/10/26 0:37, Nathan Chancellor wrote: > Hi Kefeng, > > On Thu, Oct 19, 2023 at 09:32:53AM +0800, Kefeng Wang wrote: >> Use early_pfn_to_nid() to get correct node id from base instead of >> the default NUMA_NO_NODE in cma_declare_contiguous_nid(). >> >> Signed-off-by: Kefeng Wang >> --- >> mm/cma.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/mm/cma.c b/mm/cma.c >> index 2b2494fd6b59..97c27e5fe1a2 100644 >> --- a/mm/cma.c >> +++ b/mm/cma.c >> @@ -375,6 +375,9 @@ int __init cma_declare_contiguous_nid(phys_addr_t base, >> if (ret) >> goto free_mem; >> >> + if (nid == NUMA_NO_NODE) >> + nid = early_pfn_to_nid(PHYS_PFN(base)); >> + >> pr_info("Reserved %ld MiB at %pa on node %d\n", (unsigned long)size / SZ_1M, >> &base, nid); >> return 0; >> -- >> 2.27.0 >> > > I bisected a RISC-V boot failure in QEMU to this change in -next. It > happens with OpenSUSE's RISC-V configuration [1], which I was able to > narrow down to the follow configurations on top of defconfig: Hi Nathan, sorry for the late, I will check it, thanks. > > CONFIG_ACPI_SPCR_TABLE=y > CONFIG_CMA=y > CONFIG_DEFERRED_STRUCT_PAGE_INIT=y > CONFIG_DMA_CMA=y > CONFIG_NUMA=y > > To easily reproduce: > > $ echo 'CONFIG_ACPI_SPCR_TABLE=y > CONFIG_CMA=y > CONFIG_DEFERRED_STRUCT_PAGE_INIT=y > CONFIG_DMA_CMA=y > CONFIG_NUMA=y' >kernel/configs/repro.config > > $ make -skj"$(nproc)" ARCH=riscv CROSS_COMPILE=riscv64-linux- defconfig repro.config Image > > $ qemu-system-riscv64 \ > -display none \ > -nodefaults \ > -bios default \ > -M virt \ > -append earlycon \ > -kernel arch/riscv/boot/Image \ > -initrd riscv-rootfs.cpio \ > -m 512m \ > -serial mon:stdio > > OpenSBI v1.3.1 > ... > > > > Without CONFIG_ACPI_SPCR_TABLE=y, there is a visible crash. > > [ 0.000000] Linux version 6.6.0-rc7-next-20231025 (nathan@dev-fedora.c3-large-arm64) (riscv64-linux-gcc (GCC) 13.2.0, GNU ld (GNU Binutils) 2.41) #1 SMP Wed Oct 25 16:14:59 UTC 2023 > ... > [ 0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off > [ 0.000000] page:ff1c000002200000 is uninitialized and poisoned > [ 0.000000] page dumped because: VM_BUG_ON_PAGE(1 && PageCompound(page)) > [ 0.000000] ------------[ cut here ]------------ > [ 0.000000] kernel BUG at include/linux/page-flags.h:493! > [ 0.000000] Kernel BUG [#1] > [ 0.000000] Modules linked in: > [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc7-next-20231025 #1 > [ 0.000000] Hardware name: riscv-virtio,qemu (DT) > [ 0.000000] epc : __free_pages_core+0x78/0x126 > [ 0.000000] ra : __free_pages_core+0x78/0x126 > [ 0.000000] epc : ffffffff8018dd8e ra : ffffffff8018dd8e sp : ffffffff81403d40 > [ 0.000000] gp : ffffffff815013a0 tp : ffffffff8140db00 t0 : 6d75642065676170 > [ 0.000000] t1 : 0000000000000070 t2 : 706d756420656761 s0 : ffffffff81403d50 > [ 0.000000] s1 : 0000000000000004 a0 : 000000000000003c a1 : ffffffff814866a8 > [ 0.000000] a2 : 0000000000000000 a3 : 0000000000000001 a4 : 0000000000000000 > [ 0.000000] a5 : 0000000000000000 a6 : 0000000000000008 a7 : 0000000000000038 > [ 0.000000] s2 : 0000000000088000 s3 : ff1c000002200000 s4 : 0000000000000009 > [ 0.000000] s5 : 00000000ffffffff s6 : 0000000000081800 s7 : 0000000000088200 > [ 0.000000] s8 : 00000000000001c0 s9 : 0040000000000000 s10: ffffffff81500bdd > [ 0.000000] s11: ffffffff81500bdc t3 : ffffffff81515aa7 t4 : ffffffff81515aa7 > [ 0.000000] t5 : ffffffff81515aa8 t6 : ffffffff81403b58 > [ 0.000000] status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003 > [ 0.000000] [] __free_pages_core+0x78/0x126 > [ 0.000000] [] memblock_free_pages+0x52/0x62 > [ 0.000000] [] memblock_free_all+0x1fc/0x27e > [ 0.000000] [] mem_init+0x34/0x22c > [ 0.000000] [] mm_core_init+0x116/0x2d0 > [ 0.000000] [] start_kernel+0x3c6/0x742 > [ 0.000000] Code: 0405 8399 8b85 d7f1 9597 00e2 8593 2ae5 90ef e5dd (9002) 6597 > [ 0.000000] ---[ end trace 0000000000000000 ]--- > [ 0.000000] Kernel panic - not syncing: Fatal exception in interrupt > > The rootfs is available at [2] if necessary. If there is any more > information I can provide or patches I can test, I am more than happy to > do so. > > [1]: https://github.com/openSUSE/kernel-source/raw/master/config/riscv64/default > [2]: https://github.com/ClangBuiltLinux/boot-utils/releases > > Cheers, > Nathan