From: Mike Rapoport <rppt@kernel.org>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
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>,
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>,
Michael Ellerman <mpe@ellerman.id.au>,
Palmer Dabbelt <palmer@dabbelt.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Vasily Gorbik <gor@linux.ibm.com>, Will Deacon <will@kernel.org>,
linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org,
nvdimm@lists.linux.dev, devicetree@vger.kernel.org,
linux-arch@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org
Subject: Re: [PATCH 00/17] mm: introduce numa_memblks
Date: Mon, 22 Jul 2024 11:08:11 +0300 [thread overview]
Message-ID: <Zp4Ta31U6amqIbI1@kernel.org> (raw)
In-Reply-To: <20240719143347.000077d9@huawei.com>
On Fri, Jul 19, 2024 at 02:33:47PM +0100, Jonathan Cameron wrote:
> On Tue, 16 Jul 2024 14:13:29 +0300
> Mike Rapoport <rppt@kernel.org> wrote:
>
> > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> >
> > Hi,
> >
> > Following the discussion about handling of CXL fixed memory windows on
> > arm64 [1] I decided to bite the bullet and move numa_memblks from x86 to
> > the generic code so they will be available on arm64/riscv and maybe on
> > loongarch sometime later.
> >
> > While it could be possible to use memblock to describe CXL memory windows,
> > it currently lacks notion of unpopulated memory ranges and numa_memblks
> > does implement this.
> >
> > Another reason to make numa_memblks generic is that both arch_numa (arm64
> > and riscv) and loongarch use trimmed copy of x86 code although there is no
> > fundamental reason why the same code cannot be used on all these platforms.
> > Having numa_memblks in mm/ will make it's interaction with ACPI and FDT
> > more consistent and I believe will reduce maintenance burden.
> >
> > And with generic numa_memblks it is (almost) straightforward to enable NUMA
> > emulation on arm64 and riscv.
> >
> > The first 5 commits in this series are cleanups that are not strictly
> > related to numa_memblks.
> >
> > Commits 6-11 slightly reorder code in x86 to allow extracting numa_memblks
> > and NUMA emulation to the generic code.
> >
> > Commits 12-14 actually move the code from arch/x86/ to mm/ and commit 15
> > does some aftermath cleanups.
> >
> > Commit 16 switches arch_numa to numa_memblks.
> >
> > Commit 17 enables usage of phys_to_target_node() and
> > memory_add_physaddr_to_nid() with numa_memblks.
>
> Hi Mike,
>
> I've lightly tested with emulated CXL + Generic Ports and Generic
> Initiators as well as more normal cpus and memory via qemu on arm64 and it's
> looking good.
>
> From my earlier series, patch 4 is probably still needed to avoid
> presenting nodes with nothing in them at boot (but not if we hotplug
> memory then remove it again in which case they disappear)
> https://lore.kernel.org/all/20240529171236.32002-5-Jonathan.Cameron@huawei.com/
> However that was broken/inconsistent before your rework so I can send that
> patch separately.
I'd appreciate it :)
> Thanks for getting this sorted! I should get time to do more extensive
> testing and review in next week or so.
Thanks, you may want to wait for v2, I'm planning to send it this week.
> Jonathan
>
> >
> > [1] https://lore.kernel.org/all/20240529171236.32002-1-Jonathan.Cameron@huawei.com/
> >
> > Mike Rapoport (Microsoft) (17):
> > mm: move kernel/numa.c to mm/
> > MIPS: sgi-ip27: make NODE_DATA() the same as on all other
> > architectures
> > MIPS: loongson64: rename __node_data to node_data
> > arch, mm: move definition of node_data to generic code
> > arch, mm: pull out allocation of NODE_DATA to generic code
> > x86/numa: simplify numa_distance allocation
> > x86/numa: move FAKE_NODE_* defines to numa_emu
> > x86/numa_emu: simplify allocation of phys_dist
> > x86/numa_emu: split __apicid_to_node update to a helper function
> > x86/numa_emu: use a helper function to get MAX_DMA32_PFN
> > x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned
> > mm: introduce numa_memblks
> > mm: move numa_distance and related code from x86 to numa_memblks
> > mm: introduce numa_emulation
> > mm: make numa_memblks more self-contained
> > arch_numa: switch over to numa_memblks
> > mm: make range-to-target_node lookup facility a part of numa_memblks
> >
> > arch/arm64/include/asm/Kbuild | 1 +
> > arch/arm64/include/asm/mmzone.h | 13 -
> > arch/arm64/include/asm/topology.h | 1 +
> > arch/loongarch/include/asm/Kbuild | 1 +
> > arch/loongarch/include/asm/mmzone.h | 16 -
> > arch/loongarch/include/asm/topology.h | 1 +
> > arch/loongarch/kernel/numa.c | 21 -
> > arch/mips/include/asm/mach-ip27/mmzone.h | 1 -
> > .../mips/include/asm/mach-loongson64/mmzone.h | 4 -
> > arch/mips/loongson64/numa.c | 20 +-
> > arch/mips/sgi-ip27/ip27-memory.c | 2 +-
> > arch/powerpc/include/asm/mmzone.h | 6 -
> > arch/powerpc/mm/numa.c | 26 +-
> > arch/riscv/include/asm/Kbuild | 1 +
> > arch/riscv/include/asm/mmzone.h | 13 -
> > arch/riscv/include/asm/topology.h | 4 +
> > arch/s390/include/asm/Kbuild | 1 +
> > arch/s390/include/asm/mmzone.h | 17 -
> > arch/s390/kernel/numa.c | 3 -
> > arch/sh/include/asm/mmzone.h | 3 -
> > arch/sh/mm/init.c | 7 +-
> > arch/sh/mm/numa.c | 3 -
> > arch/sparc/include/asm/mmzone.h | 4 -
> > arch/sparc/mm/init_64.c | 11 +-
> > arch/x86/Kconfig | 9 +-
> > arch/x86/include/asm/Kbuild | 1 +
> > arch/x86/include/asm/mmzone.h | 6 -
> > arch/x86/include/asm/mmzone_32.h | 17 -
> > arch/x86/include/asm/mmzone_64.h | 18 -
> > arch/x86/include/asm/numa.h | 24 +-
> > arch/x86/include/asm/sparsemem.h | 9 -
> > arch/x86/mm/Makefile | 1 -
> > arch/x86/mm/amdtopology.c | 1 +
> > arch/x86/mm/numa.c | 618 +-----------------
> > arch/x86/mm/numa_internal.h | 24 -
> > drivers/acpi/numa/srat.c | 1 +
> > drivers/base/Kconfig | 1 +
> > drivers/base/arch_numa.c | 223 ++-----
> > drivers/cxl/Kconfig | 2 +-
> > drivers/dax/Kconfig | 2 +-
> > drivers/of/of_numa.c | 1 +
> > include/asm-generic/mmzone.h | 5 +
> > include/asm-generic/numa.h | 6 +-
> > include/linux/numa.h | 5 +
> > include/linux/numa_memblks.h | 58 ++
> > kernel/Makefile | 1 -
> > kernel/numa.c | 26 -
> > mm/Kconfig | 11 +
> > mm/Makefile | 3 +
> > mm/numa.c | 57 ++
> > {arch/x86/mm => mm}/numa_emulation.c | 42 +-
> > mm/numa_memblks.c | 565 ++++++++++++++++
> > 52 files changed, 847 insertions(+), 1070 deletions(-)
> > delete mode 100644 arch/arm64/include/asm/mmzone.h
> > delete mode 100644 arch/loongarch/include/asm/mmzone.h
> > delete mode 100644 arch/riscv/include/asm/mmzone.h
> > delete mode 100644 arch/s390/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone_32.h
> > delete mode 100644 arch/x86/include/asm/mmzone_64.h
> > create mode 100644 include/asm-generic/mmzone.h
> > create mode 100644 include/linux/numa_memblks.h
> > delete mode 100644 kernel/numa.c
> > create mode 100644 mm/numa.c
> > rename {arch/x86/mm => mm}/numa_emulation.c (94%)
> > create mode 100644 mm/numa_memblks.c
> >
> >
> > base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
>
--
Sincerely yours,
Mike.
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
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>,
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>,
Michael Ellerman <mpe@ellerman.id.au>,
Palmer Dabbelt <palmer@dabbelt.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Rob Herring <robh@kernel.org>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Vasily Gorbik <gor@linux.ibm.com>, Will Deacon <will@kernel.org>,
linux-arm-kernel@lists.infradead.org, loongarch@lists.linux.dev,
linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
linux-sh@vger.kernel.org, sparclinux@vger.kernel.org,
linux-acpi@vger.kernel.org, linux-cxl@vger.kernel.org,
nvdimm@lists.linux.dev, devicetree@vger.kernel.org,
linux-arch@vger.kernel.org, linux-mm@kvack.org, x86@kernel.org
Subject: Re: [PATCH 00/17] mm: introduce numa_memblks
Date: Mon, 22 Jul 2024 11:08:11 +0300 [thread overview]
Message-ID: <Zp4Ta31U6amqIbI1@kernel.org> (raw)
In-Reply-To: <20240719143347.000077d9@huawei.com>
On Fri, Jul 19, 2024 at 02:33:47PM +0100, Jonathan Cameron wrote:
> On Tue, 16 Jul 2024 14:13:29 +0300
> Mike Rapoport <rppt@kernel.org> wrote:
>
> > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> >
> > Hi,
> >
> > Following the discussion about handling of CXL fixed memory windows on
> > arm64 [1] I decided to bite the bullet and move numa_memblks from x86 to
> > the generic code so they will be available on arm64/riscv and maybe on
> > loongarch sometime later.
> >
> > While it could be possible to use memblock to describe CXL memory windows,
> > it currently lacks notion of unpopulated memory ranges and numa_memblks
> > does implement this.
> >
> > Another reason to make numa_memblks generic is that both arch_numa (arm64
> > and riscv) and loongarch use trimmed copy of x86 code although there is no
> > fundamental reason why the same code cannot be used on all these platforms.
> > Having numa_memblks in mm/ will make it's interaction with ACPI and FDT
> > more consistent and I believe will reduce maintenance burden.
> >
> > And with generic numa_memblks it is (almost) straightforward to enable NUMA
> > emulation on arm64 and riscv.
> >
> > The first 5 commits in this series are cleanups that are not strictly
> > related to numa_memblks.
> >
> > Commits 6-11 slightly reorder code in x86 to allow extracting numa_memblks
> > and NUMA emulation to the generic code.
> >
> > Commits 12-14 actually move the code from arch/x86/ to mm/ and commit 15
> > does some aftermath cleanups.
> >
> > Commit 16 switches arch_numa to numa_memblks.
> >
> > Commit 17 enables usage of phys_to_target_node() and
> > memory_add_physaddr_to_nid() with numa_memblks.
>
> Hi Mike,
>
> I've lightly tested with emulated CXL + Generic Ports and Generic
> Initiators as well as more normal cpus and memory via qemu on arm64 and it's
> looking good.
>
> From my earlier series, patch 4 is probably still needed to avoid
> presenting nodes with nothing in them at boot (but not if we hotplug
> memory then remove it again in which case they disappear)
> https://lore.kernel.org/all/20240529171236.32002-5-Jonathan.Cameron@huawei.com/
> However that was broken/inconsistent before your rework so I can send that
> patch separately.
I'd appreciate it :)
> Thanks for getting this sorted! I should get time to do more extensive
> testing and review in next week or so.
Thanks, you may want to wait for v2, I'm planning to send it this week.
> Jonathan
>
> >
> > [1] https://lore.kernel.org/all/20240529171236.32002-1-Jonathan.Cameron@huawei.com/
> >
> > Mike Rapoport (Microsoft) (17):
> > mm: move kernel/numa.c to mm/
> > MIPS: sgi-ip27: make NODE_DATA() the same as on all other
> > architectures
> > MIPS: loongson64: rename __node_data to node_data
> > arch, mm: move definition of node_data to generic code
> > arch, mm: pull out allocation of NODE_DATA to generic code
> > x86/numa: simplify numa_distance allocation
> > x86/numa: move FAKE_NODE_* defines to numa_emu
> > x86/numa_emu: simplify allocation of phys_dist
> > x86/numa_emu: split __apicid_to_node update to a helper function
> > x86/numa_emu: use a helper function to get MAX_DMA32_PFN
> > x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned
> > mm: introduce numa_memblks
> > mm: move numa_distance and related code from x86 to numa_memblks
> > mm: introduce numa_emulation
> > mm: make numa_memblks more self-contained
> > arch_numa: switch over to numa_memblks
> > mm: make range-to-target_node lookup facility a part of numa_memblks
> >
> > arch/arm64/include/asm/Kbuild | 1 +
> > arch/arm64/include/asm/mmzone.h | 13 -
> > arch/arm64/include/asm/topology.h | 1 +
> > arch/loongarch/include/asm/Kbuild | 1 +
> > arch/loongarch/include/asm/mmzone.h | 16 -
> > arch/loongarch/include/asm/topology.h | 1 +
> > arch/loongarch/kernel/numa.c | 21 -
> > arch/mips/include/asm/mach-ip27/mmzone.h | 1 -
> > .../mips/include/asm/mach-loongson64/mmzone.h | 4 -
> > arch/mips/loongson64/numa.c | 20 +-
> > arch/mips/sgi-ip27/ip27-memory.c | 2 +-
> > arch/powerpc/include/asm/mmzone.h | 6 -
> > arch/powerpc/mm/numa.c | 26 +-
> > arch/riscv/include/asm/Kbuild | 1 +
> > arch/riscv/include/asm/mmzone.h | 13 -
> > arch/riscv/include/asm/topology.h | 4 +
> > arch/s390/include/asm/Kbuild | 1 +
> > arch/s390/include/asm/mmzone.h | 17 -
> > arch/s390/kernel/numa.c | 3 -
> > arch/sh/include/asm/mmzone.h | 3 -
> > arch/sh/mm/init.c | 7 +-
> > arch/sh/mm/numa.c | 3 -
> > arch/sparc/include/asm/mmzone.h | 4 -
> > arch/sparc/mm/init_64.c | 11 +-
> > arch/x86/Kconfig | 9 +-
> > arch/x86/include/asm/Kbuild | 1 +
> > arch/x86/include/asm/mmzone.h | 6 -
> > arch/x86/include/asm/mmzone_32.h | 17 -
> > arch/x86/include/asm/mmzone_64.h | 18 -
> > arch/x86/include/asm/numa.h | 24 +-
> > arch/x86/include/asm/sparsemem.h | 9 -
> > arch/x86/mm/Makefile | 1 -
> > arch/x86/mm/amdtopology.c | 1 +
> > arch/x86/mm/numa.c | 618 +-----------------
> > arch/x86/mm/numa_internal.h | 24 -
> > drivers/acpi/numa/srat.c | 1 +
> > drivers/base/Kconfig | 1 +
> > drivers/base/arch_numa.c | 223 ++-----
> > drivers/cxl/Kconfig | 2 +-
> > drivers/dax/Kconfig | 2 +-
> > drivers/of/of_numa.c | 1 +
> > include/asm-generic/mmzone.h | 5 +
> > include/asm-generic/numa.h | 6 +-
> > include/linux/numa.h | 5 +
> > include/linux/numa_memblks.h | 58 ++
> > kernel/Makefile | 1 -
> > kernel/numa.c | 26 -
> > mm/Kconfig | 11 +
> > mm/Makefile | 3 +
> > mm/numa.c | 57 ++
> > {arch/x86/mm => mm}/numa_emulation.c | 42 +-
> > mm/numa_memblks.c | 565 ++++++++++++++++
> > 52 files changed, 847 insertions(+), 1070 deletions(-)
> > delete mode 100644 arch/arm64/include/asm/mmzone.h
> > delete mode 100644 arch/loongarch/include/asm/mmzone.h
> > delete mode 100644 arch/riscv/include/asm/mmzone.h
> > delete mode 100644 arch/s390/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone_32.h
> > delete mode 100644 arch/x86/include/asm/mmzone_64.h
> > create mode 100644 include/asm-generic/mmzone.h
> > create mode 100644 include/linux/numa_memblks.h
> > delete mode 100644 kernel/numa.c
> > create mode 100644 mm/numa.c
> > rename {arch/x86/mm => mm}/numa_emulation.c (94%)
> > create mode 100644 mm/numa_memblks.c
> >
> >
> > base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
>
--
Sincerely yours,
Mike.
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: nvdimm@lists.linux.dev, x86@kernel.org,
Andreas Larsson <andreas@gaisler.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
David Hildenbrand <david@redhat.com>,
Jiaxun Yang <jiaxun.yang@flygoat.com>,
linux-mips@vger.kernel.org, linux-mm@kvack.org,
sparclinux@vger.kernel.org,
Alexander Gordeev <agordeev@linux.ibm.com>,
Will Deacon <will@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-arch@vger.kernel.org, Rob Herring <robh@kernel.org>,
Vasily Gorbik <gor@linux.ibm.com>,
linux-sh@vger.kernel.org, Huacai Chen <chenhuacai@kernel.org>,
Christophe Leroy <christophe.leroy@csgroup.eu>,
linux-acpi@vger.kernel.org, Ingo Molnar <mingo@redhat.com>,
devicetree@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>,
linux-s390@vger.kernel.org, Heiko Carstens <hca@linux.ibm.com>,
Borislav Petkov <bp@alien8.de>,
linux-cxl@vger.kernel.org, loongarch@lists.linux.dev,
John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>,
Dan Williams <dan.j.williams@intel.com>,
linux-arm-kernel@lists.infradead.org,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
Palmer Dabbelt <palmer@dabbelt.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH 00/17] mm: introduce numa_memblks
Date: Mon, 22 Jul 2024 11:08:11 +0300 [thread overview]
Message-ID: <Zp4Ta31U6amqIbI1@kernel.org> (raw)
In-Reply-To: <20240719143347.000077d9@huawei.com>
On Fri, Jul 19, 2024 at 02:33:47PM +0100, Jonathan Cameron wrote:
> On Tue, 16 Jul 2024 14:13:29 +0300
> Mike Rapoport <rppt@kernel.org> wrote:
>
> > From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
> >
> > Hi,
> >
> > Following the discussion about handling of CXL fixed memory windows on
> > arm64 [1] I decided to bite the bullet and move numa_memblks from x86 to
> > the generic code so they will be available on arm64/riscv and maybe on
> > loongarch sometime later.
> >
> > While it could be possible to use memblock to describe CXL memory windows,
> > it currently lacks notion of unpopulated memory ranges and numa_memblks
> > does implement this.
> >
> > Another reason to make numa_memblks generic is that both arch_numa (arm64
> > and riscv) and loongarch use trimmed copy of x86 code although there is no
> > fundamental reason why the same code cannot be used on all these platforms.
> > Having numa_memblks in mm/ will make it's interaction with ACPI and FDT
> > more consistent and I believe will reduce maintenance burden.
> >
> > And with generic numa_memblks it is (almost) straightforward to enable NUMA
> > emulation on arm64 and riscv.
> >
> > The first 5 commits in this series are cleanups that are not strictly
> > related to numa_memblks.
> >
> > Commits 6-11 slightly reorder code in x86 to allow extracting numa_memblks
> > and NUMA emulation to the generic code.
> >
> > Commits 12-14 actually move the code from arch/x86/ to mm/ and commit 15
> > does some aftermath cleanups.
> >
> > Commit 16 switches arch_numa to numa_memblks.
> >
> > Commit 17 enables usage of phys_to_target_node() and
> > memory_add_physaddr_to_nid() with numa_memblks.
>
> Hi Mike,
>
> I've lightly tested with emulated CXL + Generic Ports and Generic
> Initiators as well as more normal cpus and memory via qemu on arm64 and it's
> looking good.
>
> From my earlier series, patch 4 is probably still needed to avoid
> presenting nodes with nothing in them at boot (but not if we hotplug
> memory then remove it again in which case they disappear)
> https://lore.kernel.org/all/20240529171236.32002-5-Jonathan.Cameron@huawei.com/
> However that was broken/inconsistent before your rework so I can send that
> patch separately.
I'd appreciate it :)
> Thanks for getting this sorted! I should get time to do more extensive
> testing and review in next week or so.
Thanks, you may want to wait for v2, I'm planning to send it this week.
> Jonathan
>
> >
> > [1] https://lore.kernel.org/all/20240529171236.32002-1-Jonathan.Cameron@huawei.com/
> >
> > Mike Rapoport (Microsoft) (17):
> > mm: move kernel/numa.c to mm/
> > MIPS: sgi-ip27: make NODE_DATA() the same as on all other
> > architectures
> > MIPS: loongson64: rename __node_data to node_data
> > arch, mm: move definition of node_data to generic code
> > arch, mm: pull out allocation of NODE_DATA to generic code
> > x86/numa: simplify numa_distance allocation
> > x86/numa: move FAKE_NODE_* defines to numa_emu
> > x86/numa_emu: simplify allocation of phys_dist
> > x86/numa_emu: split __apicid_to_node update to a helper function
> > x86/numa_emu: use a helper function to get MAX_DMA32_PFN
> > x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned
> > mm: introduce numa_memblks
> > mm: move numa_distance and related code from x86 to numa_memblks
> > mm: introduce numa_emulation
> > mm: make numa_memblks more self-contained
> > arch_numa: switch over to numa_memblks
> > mm: make range-to-target_node lookup facility a part of numa_memblks
> >
> > arch/arm64/include/asm/Kbuild | 1 +
> > arch/arm64/include/asm/mmzone.h | 13 -
> > arch/arm64/include/asm/topology.h | 1 +
> > arch/loongarch/include/asm/Kbuild | 1 +
> > arch/loongarch/include/asm/mmzone.h | 16 -
> > arch/loongarch/include/asm/topology.h | 1 +
> > arch/loongarch/kernel/numa.c | 21 -
> > arch/mips/include/asm/mach-ip27/mmzone.h | 1 -
> > .../mips/include/asm/mach-loongson64/mmzone.h | 4 -
> > arch/mips/loongson64/numa.c | 20 +-
> > arch/mips/sgi-ip27/ip27-memory.c | 2 +-
> > arch/powerpc/include/asm/mmzone.h | 6 -
> > arch/powerpc/mm/numa.c | 26 +-
> > arch/riscv/include/asm/Kbuild | 1 +
> > arch/riscv/include/asm/mmzone.h | 13 -
> > arch/riscv/include/asm/topology.h | 4 +
> > arch/s390/include/asm/Kbuild | 1 +
> > arch/s390/include/asm/mmzone.h | 17 -
> > arch/s390/kernel/numa.c | 3 -
> > arch/sh/include/asm/mmzone.h | 3 -
> > arch/sh/mm/init.c | 7 +-
> > arch/sh/mm/numa.c | 3 -
> > arch/sparc/include/asm/mmzone.h | 4 -
> > arch/sparc/mm/init_64.c | 11 +-
> > arch/x86/Kconfig | 9 +-
> > arch/x86/include/asm/Kbuild | 1 +
> > arch/x86/include/asm/mmzone.h | 6 -
> > arch/x86/include/asm/mmzone_32.h | 17 -
> > arch/x86/include/asm/mmzone_64.h | 18 -
> > arch/x86/include/asm/numa.h | 24 +-
> > arch/x86/include/asm/sparsemem.h | 9 -
> > arch/x86/mm/Makefile | 1 -
> > arch/x86/mm/amdtopology.c | 1 +
> > arch/x86/mm/numa.c | 618 +-----------------
> > arch/x86/mm/numa_internal.h | 24 -
> > drivers/acpi/numa/srat.c | 1 +
> > drivers/base/Kconfig | 1 +
> > drivers/base/arch_numa.c | 223 ++-----
> > drivers/cxl/Kconfig | 2 +-
> > drivers/dax/Kconfig | 2 +-
> > drivers/of/of_numa.c | 1 +
> > include/asm-generic/mmzone.h | 5 +
> > include/asm-generic/numa.h | 6 +-
> > include/linux/numa.h | 5 +
> > include/linux/numa_memblks.h | 58 ++
> > kernel/Makefile | 1 -
> > kernel/numa.c | 26 -
> > mm/Kconfig | 11 +
> > mm/Makefile | 3 +
> > mm/numa.c | 57 ++
> > {arch/x86/mm => mm}/numa_emulation.c | 42 +-
> > mm/numa_memblks.c | 565 ++++++++++++++++
> > 52 files changed, 847 insertions(+), 1070 deletions(-)
> > delete mode 100644 arch/arm64/include/asm/mmzone.h
> > delete mode 100644 arch/loongarch/include/asm/mmzone.h
> > delete mode 100644 arch/riscv/include/asm/mmzone.h
> > delete mode 100644 arch/s390/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone.h
> > delete mode 100644 arch/x86/include/asm/mmzone_32.h
> > delete mode 100644 arch/x86/include/asm/mmzone_64.h
> > create mode 100644 include/asm-generic/mmzone.h
> > create mode 100644 include/linux/numa_memblks.h
> > delete mode 100644 kernel/numa.c
> > create mode 100644 mm/numa.c
> > rename {arch/x86/mm => mm}/numa_emulation.c (94%)
> > create mode 100644 mm/numa_memblks.c
> >
> >
> > base-commit: 22a40d14b572deb80c0648557f4bd502d7e83826
>
--
Sincerely yours,
Mike.
next prev parent reply other threads:[~2024-07-22 8:11 UTC|newest]
Thread overview: 180+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-16 11:13 [PATCH 00/17] mm: introduce numa_memblks Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 01/17] mm: move kernel/numa.c to mm/ Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-17 14:35 ` David Hildenbrand
2024-07-17 14:35 ` David Hildenbrand
2024-07-17 14:35 ` David Hildenbrand
2024-07-19 13:55 ` Jonathan Cameron
2024-07-19 13:55 ` Jonathan Cameron
2024-07-19 13:55 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 02/17] MIPS: sgi-ip27: make NODE_DATA() the same as on all other architectures Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-17 14:32 ` David Hildenbrand
2024-07-17 14:32 ` David Hildenbrand
2024-07-17 14:32 ` David Hildenbrand
2024-07-19 14:38 ` Jonathan Cameron
2024-07-19 14:38 ` Jonathan Cameron
2024-07-19 14:38 ` Jonathan Cameron
2024-07-22 7:34 ` Mike Rapoport
2024-07-22 7:34 ` Mike Rapoport
2024-07-22 7:34 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 03/17] MIPS: loongson64: rename __node_data to node_data Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 13:07 ` Jiaxun Yang
2024-07-16 13:07 ` Jiaxun Yang
2024-07-16 13:07 ` Jiaxun Yang
2024-07-17 14:33 ` David Hildenbrand
2024-07-17 14:33 ` David Hildenbrand
2024-07-17 14:33 ` David Hildenbrand
2024-07-19 15:27 ` Jonathan Cameron
2024-07-19 15:27 ` Jonathan Cameron
2024-07-19 15:27 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 04/17] arch, mm: move definition of node_data to generic code Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-17 14:35 ` David Hildenbrand
2024-07-17 14:35 ` David Hildenbrand
2024-07-17 14:35 ` David Hildenbrand
2024-07-19 15:39 ` Jonathan Cameron
2024-07-19 15:39 ` Jonathan Cameron
2024-07-19 15:39 ` Jonathan Cameron
2024-07-23 0:15 ` Davidlohr Bueso
2024-07-23 0:15 ` Davidlohr Bueso
2024-07-23 0:15 ` Davidlohr Bueso
2024-07-16 11:13 ` [PATCH 05/17] arch, mm: pull out allocation of NODE_DATA " Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-17 14:42 ` David Hildenbrand
2024-07-17 14:42 ` David Hildenbrand
2024-07-17 14:42 ` David Hildenbrand
2024-07-18 7:02 ` Mike Rapoport
2024-07-18 7:02 ` Mike Rapoport
2024-07-18 7:02 ` Mike Rapoport
2024-07-19 15:07 ` David Hildenbrand
2024-07-19 15:07 ` David Hildenbrand
2024-07-19 15:07 ` David Hildenbrand
2024-07-19 15:34 ` Mike Rapoport
2024-07-19 15:34 ` Mike Rapoport
2024-07-19 15:34 ` Mike Rapoport
2024-07-19 15:46 ` David Hildenbrand
2024-07-19 15:46 ` David Hildenbrand
2024-07-19 15:46 ` David Hildenbrand
2024-07-19 15:51 ` Jonathan Cameron
2024-07-19 15:51 ` Jonathan Cameron
2024-07-19 15:51 ` Jonathan Cameron
2024-07-19 16:07 ` David Hildenbrand
2024-07-19 16:07 ` David Hildenbrand
2024-07-19 16:07 ` David Hildenbrand
2024-07-20 10:24 ` Mike Rapoport
2024-07-20 10:24 ` Mike Rapoport
2024-07-20 10:24 ` Mike Rapoport
2024-07-19 16:11 ` Jonathan Cameron
2024-07-19 16:11 ` Jonathan Cameron
2024-07-19 16:11 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 06/17] x86/numa: simplify numa_distance allocation Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:28 ` Jonathan Cameron
2024-07-19 16:28 ` Jonathan Cameron
2024-07-19 16:28 ` Jonathan Cameron
2024-07-22 7:51 ` Mike Rapoport
2024-07-22 7:51 ` Mike Rapoport
2024-07-22 7:51 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 07/17] x86/numa: move FAKE_NODE_* defines to numa_emu Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:30 ` Jonathan Cameron
2024-07-19 16:30 ` Jonathan Cameron
2024-07-19 16:30 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 08/17] x86/numa_emu: simplify allocation of phys_dist Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:38 ` Jonathan Cameron
2024-07-19 16:38 ` Jonathan Cameron
2024-07-19 16:38 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 09/17] x86/numa_emu: split __apicid_to_node update to a helper function Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:47 ` Jonathan Cameron
2024-07-19 16:47 ` Jonathan Cameron
2024-07-19 16:47 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 10/17] x86/numa_emu: use a helper function to get MAX_DMA32_PFN Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:50 ` Jonathan Cameron
2024-07-19 16:50 ` Jonathan Cameron
2024-07-19 16:50 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 11/17] x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:57 ` Jonathan Cameron
2024-07-19 16:57 ` Jonathan Cameron
2024-07-19 16:57 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 12/17] mm: introduce numa_memblks Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 18:16 ` Jonathan Cameron
2024-07-19 18:16 ` Jonathan Cameron
2024-07-19 18:16 ` Jonathan Cameron
2024-07-22 8:03 ` Mike Rapoport
2024-07-22 8:03 ` Mike Rapoport
2024-07-22 8:03 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 13/17] mm: move numa_distance and related code from x86 to numa_memblks Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-18 21:46 ` Samuel Holland
2024-07-18 21:46 ` Samuel Holland
2024-07-18 21:46 ` Samuel Holland
2024-07-19 5:55 ` Mike Rapoport
2024-07-19 5:55 ` Mike Rapoport
2024-07-19 5:55 ` Mike Rapoport
2024-07-19 17:48 ` Jonathan Cameron
2024-07-19 17:48 ` Jonathan Cameron
2024-07-19 17:48 ` Jonathan Cameron
2024-07-20 12:25 ` Mike Rapoport
2024-07-20 12:25 ` Mike Rapoport
2024-07-20 12:25 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 14/17] mm: introduce numa_emulation Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 16:03 ` Zi Yan
2024-07-19 16:03 ` Zi Yan
2024-07-19 16:03 ` Zi Yan
2024-07-20 12:09 ` Mike Rapoport
2024-07-20 12:09 ` Mike Rapoport
2024-07-20 12:09 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 15/17] mm: make numa_memblks more self-contained Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 18:07 ` Jonathan Cameron
2024-07-19 18:07 ` Jonathan Cameron
2024-07-19 18:07 ` Jonathan Cameron
2024-07-20 12:32 ` Mike Rapoport
2024-07-20 12:32 ` Mike Rapoport
2024-07-20 12:32 ` Mike Rapoport
2024-07-22 8:05 ` Mike Rapoport
2024-07-22 8:05 ` Mike Rapoport
2024-07-22 8:05 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 16/17] arch_numa: switch over to numa_memblks Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 18:16 ` Jonathan Cameron
2024-07-19 18:16 ` Jonathan Cameron
2024-07-19 18:16 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 17/17] mm: make range-to-target_node lookup facility a part of numa_memblks Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-16 11:13 ` Mike Rapoport
2024-07-19 18:19 ` Jonathan Cameron
2024-07-19 18:19 ` Jonathan Cameron
2024-07-19 18:19 ` Jonathan Cameron
2024-07-19 13:33 ` [PATCH 00/17] mm: introduce numa_memblks Jonathan Cameron
2024-07-19 13:33 ` Jonathan Cameron
2024-07-19 13:33 ` Jonathan Cameron
2024-07-22 8:08 ` Mike Rapoport [this message]
2024-07-22 8:08 ` Mike Rapoport
2024-07-22 8:08 ` Mike Rapoport
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=Zp4Ta31U6amqIbI1@kernel.org \
--to=rppt@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--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=dan.j.williams@intel.com \
--cc=dave.hansen@linux.intel.com \
--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=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-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=sparclinux@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/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.