From: Marc Zyngier <maz@kernel.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Alexander Gordeev <agordeev@linux.ibm.com>,
Andreas Larsson <andreas@gaisler.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>, Borislav Petkov <bp@alien8.de>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Dan Williams <dan.j.williams@intel.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
David Hildenbrand <david@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Davidlohr Bueso <dave@stgolabs.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Heiko Carstens <hca@linux.ibm.com>,
Huacai Chen <chenhuacai@kernel.org>,
Ingo Molnar <mingo@redhat.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
Jonathan Corbet <corbet@lwn.net>,
Michael Ellerman <mpe@ellerman.id.au>,
Palmer Dabbelt <palmer@dabbelt.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Samuel Holland <samuel.holland@sifive.com>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Vasily Gorbik <gor@linux.ibm.com>, Will Deacon <will@kernel.org>,
Zi Yan <ziy@nvidia.com>,
devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
loongarch@lists.linux.dev, nvdimm@lists.linux.dev,
sparclinux@vger.kernel.org, x86@kernel.org,
Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v4 24/26] arch_numa: switch over to numa_memblks
Date: Wed, 27 Nov 2024 19:32:06 +0000 [thread overview]
Message-ID: <867c8ov5ft.wl-maz@kernel.org> (raw)
In-Reply-To: <20240807064110.1003856-25-rppt@kernel.org>
Hi Mike,
Sorry for reviving a rather old thread.
On Wed, 07 Aug 2024 07:41:08 +0100,
Mike Rapoport <rppt@kernel.org> wrote:
>
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
>
> Until now arch_numa was directly translating firmware NUMA information
> to memblock.
>
> Using numa_memblks as an intermediate step has a few advantages:
> * alignment with more battle tested x86 implementation
> * availability of NUMA emulation
> * maintaining node information for not yet populated memory
>
> Adjust a few places in numa_memblks to compile with 32-bit phys_addr_t
> and replace current functionality related to numa_add_memblk() and
> __node_distance() in arch_numa with the implementation based on
> numa_memblks and add functions required by numa_emulation.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Tested-by: Zi Yan <ziy@nvidia.com> # for x86_64 and arm64
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> [arm64 + CXL via QEMU]
> Acked-by: Dan Williams <dan.j.williams@intel.com>
> Acked-by: David Hildenbrand <david@redhat.com>
> ---
> drivers/base/Kconfig | 1 +
> drivers/base/arch_numa.c | 201 +++++++++++--------------------------
> include/asm-generic/numa.h | 6 +-
> mm/numa_memblks.c | 17 ++--
> 4 files changed, 75 insertions(+), 150 deletions(-)
>
[...]
> static int __init numa_register_nodes(void)
> {
> int nid;
> - struct memblock_region *mblk;
> -
> - /* Check that valid nid is set to memblks */
> - for_each_mem_region(mblk) {
> - int mblk_nid = memblock_get_region_node(mblk);
> - phys_addr_t start = mblk->base;
> - phys_addr_t end = mblk->base + mblk->size - 1;
> -
> - if (mblk_nid == NUMA_NO_NODE || mblk_nid >= MAX_NUMNODES) {
> - pr_warn("Warning: invalid memblk node %d [mem %pap-%pap]\n",
> - mblk_nid, &start, &end);
> - return -EINVAL;
> - }
> - }
>
This hunk has the unfortunate side effect of killing my ThunderX
extremely early at boot time, as this sorry excuse for a machine
really relies on the kernel recognising that whatever NUMA information
the FW offers is BS.
Reverting this hunk restores happiness (sort of).
FWIW, I've posted a patch with such revert at [1].
Thanks,
M.
[1] https://lore.kernel.org/r/20241127193000.3702637-1-maz@kernel.org
--
Without deviation from the norm, progress is not possible.
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Mike Rapoport <rppt@kernel.org>
Cc: linux-kernel@vger.kernel.org,
Alexander Gordeev <agordeev@linux.ibm.com>,
Andreas Larsson <andreas@gaisler.com>,
Andrew Morton <akpm@linux-foundation.org>,
Arnd Bergmann <arnd@arndb.de>, Borislav Petkov <bp@alien8.de>,
Catalin Marinas <catalin.marinas@arm.com>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
Dan Williams <dan.j.williams@intel.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
David Hildenbrand <david@redhat.com>,
"David S. Miller" <davem@davemloft.net>,
Davidlohr Bueso <dave@stgolabs.net>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Heiko Carstens <hca@linux.ibm.com>,
Huacai Chen <chenhuacai@kernel.org>,
Ingo Molnar <mingo@redhat.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
Jonathan Corbet <corbet@lwn.net>,
Michael Ellerman <mpe@ellerman.id.au>,
Palmer Dabbelt <palmer@dabbelt.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Samuel Holland <samuel.holland@sifive.com>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Vasily Gorbik <gor@linux.ibm.com>, Will Deacon <will@kernel.org>,
Zi Yan <ziy@nvidia.com>,
devicetree@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-arch@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-cxl@vger.kernel.org, linux-doc@vger.kernel.org,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
loongarch@lists.linux.dev, nvdimm@lists.linux.dev,
sparclinux@vger.kernel.org, x86@kernel.org,
Jonathan Cameron <Jonathan.Cameron@huawei.com>
Subject: Re: [PATCH v4 24/26] arch_numa: switch over to numa_memblks
Date: Wed, 27 Nov 2024 19:32:06 +0000 [thread overview]
Message-ID: <867c8ov5ft.wl-maz@kernel.org> (raw)
In-Reply-To: <20240807064110.1003856-25-rppt@kernel.org>
Hi Mike,
Sorry for reviving a rather old thread.
On Wed, 07 Aug 2024 07:41:08 +0100,
Mike Rapoport <rppt@kernel.org> wrote:
>
> From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
>
> Until now arch_numa was directly translating firmware NUMA information
> to memblock.
>
> Using numa_memblks as an intermediate step has a few advantages:
> * alignment with more battle tested x86 implementation
> * availability of NUMA emulation
> * maintaining node information for not yet populated memory
>
> Adjust a few places in numa_memblks to compile with 32-bit phys_addr_t
> and replace current functionality related to numa_add_memblk() and
> __node_distance() in arch_numa with the implementation based on
> numa_memblks and add functions required by numa_emulation.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
> Tested-by: Zi Yan <ziy@nvidia.com> # for x86_64 and arm64
> Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> [arm64 + CXL via QEMU]
> Acked-by: Dan Williams <dan.j.williams@intel.com>
> Acked-by: David Hildenbrand <david@redhat.com>
> ---
> drivers/base/Kconfig | 1 +
> drivers/base/arch_numa.c | 201 +++++++++++--------------------------
> include/asm-generic/numa.h | 6 +-
> mm/numa_memblks.c | 17 ++--
> 4 files changed, 75 insertions(+), 150 deletions(-)
>
[...]
> static int __init numa_register_nodes(void)
> {
> int nid;
> - struct memblock_region *mblk;
> -
> - /* Check that valid nid is set to memblks */
> - for_each_mem_region(mblk) {
> - int mblk_nid = memblock_get_region_node(mblk);
> - phys_addr_t start = mblk->base;
> - phys_addr_t end = mblk->base + mblk->size - 1;
> -
> - if (mblk_nid == NUMA_NO_NODE || mblk_nid >= MAX_NUMNODES) {
> - pr_warn("Warning: invalid memblk node %d [mem %pap-%pap]\n",
> - mblk_nid, &start, &end);
> - return -EINVAL;
> - }
> - }
>
This hunk has the unfortunate side effect of killing my ThunderX
extremely early at boot time, as this sorry excuse for a machine
really relies on the kernel recognising that whatever NUMA information
the FW offers is BS.
Reverting this hunk restores happiness (sort of).
FWIW, I've posted a patch with such revert at [1].
Thanks,
M.
[1] https://lore.kernel.org/r/20241127193000.3702637-1-maz@kernel.org
--
Without deviation from the norm, progress is not possible.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2024-11-27 19:32 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-08-07 6:40 [PATCH v4 00/26] mm: introduce numa_memblks Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 01/26] mm: move kernel/numa.c to mm/ Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 02/26] MIPS: sgi-ip27: make NODE_DATA() the same as on all other architectures Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 03/26] MIPS: sgi-ip27: ensure node_possible_map only contains valid nodes Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 04/26] MIPS: sgi-ip27: drop HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 05/26] MIPS: loongson64: rename __node_data to node_data Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 06/26] MIPS: loongson64: drop HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 07/26] arch, mm: move definition of node_data to generic code Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 08/26] mm: drop CONFIG_HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 09/26] arch, mm: pull out allocation of NODE_DATA to generic code Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 10/26] x86/numa: simplify numa_distance allocation Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 11/26] x86/numa: use get_pfn_range_for_nid to verify that node spans memory Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 12/26] x86/numa: move FAKE_NODE_* defines to numa_emu Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 13/26] x86/numa_emu: simplify allocation of phys_dist Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 14/26] x86/numa_emu: split __apicid_to_node update to a helper function Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` [PATCH v4 15/26] x86/numa_emu: use a helper function to get MAX_DMA32_PFN Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:40 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 16/26] x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 17/26] mm: introduce numa_memblks Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 18/26] mm: move numa_distance and related code from x86 to numa_memblks Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 19/26] mm: introduce numa_emulation Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 20/26] mm: numa_memblks: introduce numa_memblks_init Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 21/26] mm: numa_memblks: make several functions and variables static Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 22/26] mm: numa_memblks: use memblock_{start,end}_of_DRAM() when sanitizing meminfo Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 23/26] of, numa: return -EINVAL when no numa-node-id is found Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 24/26] arch_numa: switch over to numa_memblks Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:58 ` Arnd Bergmann
2024-08-07 6:58 ` Arnd Bergmann
2024-08-07 6:58 ` Arnd Bergmann
2024-08-07 18:18 ` Mike Rapoport
2024-08-07 18:18 ` Mike Rapoport
2024-08-07 18:18 ` Mike Rapoport
2024-08-07 18:53 ` Arnd Bergmann
2024-08-07 18:53 ` Arnd Bergmann
2024-08-07 18:53 ` Arnd Bergmann
2024-11-27 19:32 ` Marc Zyngier [this message]
2024-11-27 19:32 ` Marc Zyngier
2024-08-07 6:41 ` [PATCH v4 25/26] mm: make range-to-target_node lookup facility a part of numa_memblks Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` [PATCH v4 26/26] docs: move numa=fake description to kernel-parameters.txt Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
2024-08-07 6:41 ` Mike Rapoport
-- strict thread matches above, loose matches on Subject: below --
2024-08-26 18:17 [PATCH v4 24/26] arch_numa: switch over to numa_memblks Bruno Faccini
2024-08-27 8:52 ` Mike Rapoport
2024-08-27 8:52 ` Mike Rapoport
2024-08-26 21:15 Bruno Faccini
2024-08-26 22:46 Bruno Faccini
2024-08-26 22:46 ` Bruno Faccini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=867c8ov5ft.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=agordeev@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=andreas@gaisler.com \
--cc=arnd@arndb.de \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=chenhuacai@kernel.org \
--cc=christophe.leroy@csgroup.eu \
--cc=corbet@lwn.net \
--cc=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=dave@stgolabs.net \
--cc=davem@davemloft.net \
--cc=david@redhat.com \
--cc=devicetree@vger.kernel.org \
--cc=glaubitz@physik.fu-berlin.de \
--cc=gor@linux.ibm.com \
--cc=gregkh@linuxfoundation.org \
--cc=hca@linux.ibm.com \
--cc=jiaxun.yang@flygoat.com \
--cc=jonathan.cameron@huawei.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-sh@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=loongarch@lists.linux.dev \
--cc=mingo@redhat.com \
--cc=mpe@ellerman.id.au \
--cc=nvdimm@lists.linux.dev \
--cc=palmer@dabbelt.com \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=rppt@kernel.org \
--cc=samuel.holland@sifive.com \
--cc=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
--cc=ziy@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.