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.
prev parent reply other threads:[~2024-07-22 8:11 UTC|newest]
Thread overview: 60+ 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 ` [PATCH 01/17] mm: move kernel/numa.c to mm/ Mike Rapoport
2024-07-17 14:35 ` David Hildenbrand
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-17 14:32 ` David Hildenbrand
2024-07-19 14:38 ` Jonathan Cameron
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 13:07 ` Jiaxun Yang
2024-07-17 14:33 ` David Hildenbrand
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-17 14:35 ` David Hildenbrand
2024-07-19 15:39 ` Jonathan Cameron
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-17 14:42 ` David Hildenbrand
2024-07-18 7:02 ` Mike Rapoport
2024-07-19 15:07 ` David Hildenbrand
2024-07-19 15:34 ` Mike Rapoport
2024-07-19 15:46 ` David Hildenbrand
2024-07-19 15:51 ` Jonathan Cameron
2024-07-19 16:07 ` David Hildenbrand
2024-07-20 10:24 ` Mike Rapoport
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-19 16:28 ` Jonathan Cameron
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-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-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-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-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-19 16:57 ` Jonathan Cameron
2024-07-16 11:13 ` [PATCH 12/17] mm: introduce numa_memblks Mike Rapoport
2024-07-19 18:16 ` Jonathan Cameron
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-18 21:46 ` Samuel Holland
2024-07-19 5:55 ` Mike Rapoport
2024-07-19 17:48 ` Jonathan Cameron
2024-07-20 12:25 ` Mike Rapoport
2024-07-16 11:13 ` [PATCH 14/17] mm: introduce numa_emulation Mike Rapoport
2024-07-19 16:03 ` Zi Yan
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-19 18:07 ` Jonathan Cameron
2024-07-20 12:32 ` 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-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-19 18:19 ` Jonathan Cameron
2024-07-19 13:33 ` [PATCH 00/17] mm: introduce numa_memblks Jonathan Cameron
2024-07-22 8:08 ` Mike Rapoport [this message]
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).