MAINTAINERS | 1 +
drivers/base/Kconfig | 7 -------
drivers/base/Makefile | 1 -
mm/Kconfig | 7 +++++++
mm/Makefile | 1 +
{drivers/base => mm}/arch_numa.c | 0
6 files changed, 9 insertions(+), 8 deletions(-)
arch_numa.c implements boot time discovery and initialization of NUMA
topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
and riscv).
Since this is step in the initialization of the memory management
subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
numa_memblks.c and numa_emulation.c.
Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
MANAGEMENT INITIALIZATION" in MAINTAINERS.
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
MAINTAINERS | 1 +
drivers/base/Kconfig | 7 -------
drivers/base/Makefile | 1 -
mm/Kconfig | 7 +++++++
mm/Makefile | 1 +
{drivers/base => mm}/arch_numa.c | 0
6 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 5114e6db7307..465b64f8e93c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -16880,6 +16880,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
F: Documentation/core-api/boot-time-mm.rst
F: include/linux/kho/abi/memblock.h
F: include/linux/memblock.h
+F: mm/arch_numa.c
F: mm/bootmem_info.c
F: mm/memblock.c
F: mm/memtest.c
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index f7d385cbd3ba..1d93bfc34490 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -239,13 +239,6 @@ config GENERIC_ARCH_TOPOLOGY
appropriate scaling, sysfs interface for reading capacity values at
runtime.
-config GENERIC_ARCH_NUMA
- bool
- select NUMA_MEMBLKS
- help
- Enable support for generic NUMA implementation. Currently, RISC-V
- and ARM64 use it.
-
config FW_DEVLINK_SYNC_STATE_TIMEOUT
bool "sync_state() behavior defaults to timeout instead of strict"
help
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index 8074a10183dc..435710f643a5 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -25,7 +25,6 @@ obj-$(CONFIG_PINCTRL) += pinctrl.o
obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
-obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
obj-$(CONFIG_ACPI) += physical_location.o
obj-y += test/
diff --git a/mm/Kconfig b/mm/Kconfig
index 9e0ca4824905..410b8a0a92b9 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1469,6 +1469,13 @@ config NUMA_EMU
into virtual nodes when booted with "numa=fake=N", where N is the
number of nodes. This is only useful for debugging.
+config GENERIC_ARCH_NUMA
+ bool
+ select NUMA_MEMBLKS
+ help
+ Enable support for generic NUMA implementation. Currently, RISC-V
+ and ARM64 use it.
+
config ARCH_HAS_USER_SHADOW_STACK
bool
help
diff --git a/mm/Makefile b/mm/Makefile
index eff9f9e7e061..fd29be716fa8 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -122,6 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
+obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
obj-$(CONFIG_BALLOON) += balloon.o
obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
diff --git a/drivers/base/arch_numa.c b/mm/arch_numa.c
similarity index 100%
rename from drivers/base/arch_numa.c
rename to mm/arch_numa.c
---
base-commit: 075b74841bd0065a3bda3440873c747938e69b68
change-id: 20260806-arch-numa-444bb4806114
--
Sincerely yours,
Mike.
On 26/08/06 09:58AM, Mike Rapoport (Microsoft) wrote:
> arch_numa.c implements boot time discovery and initialization of NUMA
> topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
> and riscv).
>
> Since this is step in the initialization of the memory management
> subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
> numa_memblks.c and numa_emulation.c.
>
> Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
> MANAGEMENT INITIALIZATION" in MAINTAINERS.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Acked-by: Liam R. Howlett (Oracle) <liam@infradead.org>
> ---
> MAINTAINERS | 1 +
> drivers/base/Kconfig | 7 -------
> drivers/base/Makefile | 1 -
> mm/Kconfig | 7 +++++++
> mm/Makefile | 1 +
> {drivers/base => mm}/arch_numa.c | 0
> 6 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 5114e6db7307..465b64f8e93c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -16880,6 +16880,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
> F: Documentation/core-api/boot-time-mm.rst
> F: include/linux/kho/abi/memblock.h
> F: include/linux/memblock.h
> +F: mm/arch_numa.c
> F: mm/bootmem_info.c
> F: mm/memblock.c
> F: mm/memtest.c
> diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
> index f7d385cbd3ba..1d93bfc34490 100644
> --- a/drivers/base/Kconfig
> +++ b/drivers/base/Kconfig
> @@ -239,13 +239,6 @@ config GENERIC_ARCH_TOPOLOGY
> appropriate scaling, sysfs interface for reading capacity values at
> runtime.
>
> -config GENERIC_ARCH_NUMA
> - bool
> - select NUMA_MEMBLKS
> - help
> - Enable support for generic NUMA implementation. Currently, RISC-V
> - and ARM64 use it.
> -
> config FW_DEVLINK_SYNC_STATE_TIMEOUT
> bool "sync_state() behavior defaults to timeout instead of strict"
> help
> diff --git a/drivers/base/Makefile b/drivers/base/Makefile
> index 8074a10183dc..435710f643a5 100644
> --- a/drivers/base/Makefile
> +++ b/drivers/base/Makefile
> @@ -25,7 +25,6 @@ obj-$(CONFIG_PINCTRL) += pinctrl.o
> obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
> obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
> obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
> -obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
> obj-$(CONFIG_ACPI) += physical_location.o
>
> obj-y += test/
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 9e0ca4824905..410b8a0a92b9 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -1469,6 +1469,13 @@ config NUMA_EMU
> into virtual nodes when booted with "numa=fake=N", where N is the
> number of nodes. This is only useful for debugging.
>
> +config GENERIC_ARCH_NUMA
> + bool
> + select NUMA_MEMBLKS
> + help
> + Enable support for generic NUMA implementation. Currently, RISC-V
> + and ARM64 use it.
> +
> config ARCH_HAS_USER_SHADOW_STACK
> bool
> help
> diff --git a/mm/Makefile b/mm/Makefile
> index eff9f9e7e061..fd29be716fa8 100644
> --- a/mm/Makefile
> +++ b/mm/Makefile
> @@ -122,6 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
> obj-$(CONFIG_NUMA) += numa.o
> obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
> obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
> +obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
> obj-$(CONFIG_BALLOON) += balloon.o
> obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
> obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
> diff --git a/drivers/base/arch_numa.c b/mm/arch_numa.c
> similarity index 100%
> rename from drivers/base/arch_numa.c
> rename to mm/arch_numa.c
>
> ---
> base-commit: 075b74841bd0065a3bda3440873c747938e69b68
> change-id: 20260806-arch-numa-444bb4806114
>
> --
> Sincerely yours,
> Mike.
>
On Thu, 06 Aug 2026 09:58:38 +0300 "Mike Rapoport (Microsoft)" <rppt@kernel.org> wrote:
> arch_numa.c implements boot time discovery and initialization of NUMA
> topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
> and riscv).
>
> Since this is step in the initialization of the memory management
> subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
> numa_memblks.c and numa_emulation.c.
>
> Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
> MANAGEMENT INITIALIZATION" in MAINTAINERS.
Unclear what tree this is targeted at. I grabbed it.
mm-stable does have this change:
--- linux-7.2-rc5/drivers/base/arch_numa.c 2026-07-27 04:44:55.000000000 -0700
+++ 25/drivers/base/arch_numa.c 2026-08-06 15:47:59.019918702 -0700
@@ -231,10 +231,6 @@ static int __init numa_init(int (*init_f
{
int ret;
- nodes_clear(numa_nodes_parsed);
- nodes_clear(node_possible_map);
- nodes_clear(node_online_map);
-
ret = numa_memblks_init(init_func, /* memblock_force_top_down */ false);
if (ret < 0)
goto out_free_distance;
which is easily handled either way.
On Thu, Aug 06, 2026 at 03:48:42PM -0700, Andrew Morton wrote:
> On Thu, 06 Aug 2026 09:58:38 +0300 "Mike Rapoport (Microsoft)" <rppt@kernel.org> wrote:
>
> > arch_numa.c implements boot time discovery and initialization of NUMA
> > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
> > and riscv).
> >
> > Since this is step in the initialization of the memory management
> > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
> > numa_memblks.c and numa_emulation.c.
> >
> > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
> > MANAGEMENT INITIALIZATION" in MAINTAINERS.
>
> Unclear what tree this is targeted at. I grabbed it.
Heh, it's muscle memory to send such patches to you :)
Let's keep this in your tree, thanks!
> mm-stable does have this change:
>
> --- linux-7.2-rc5/drivers/base/arch_numa.c 2026-07-27 04:44:55.000000000 -0700
> +++ 25/drivers/base/arch_numa.c 2026-08-06 15:47:59.019918702 -0700
> @@ -231,10 +231,6 @@ static int __init numa_init(int (*init_f
> {
> int ret;
>
> - nodes_clear(numa_nodes_parsed);
> - nodes_clear(node_possible_map);
> - nodes_clear(node_online_map);
> -
> ret = numa_memblks_init(init_func, /* memblock_force_top_down */ false);
> if (ret < 0)
> goto out_free_distance;
>
>
> which is easily handled either way.
--
Sincerely yours,
Mike.
On Thu Aug 6, 2026 at 8:58 AM CEST, Mike Rapoport (Microsoft) wrote: > arch_numa.c implements boot time discovery and initialization of NUMA > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64 > and riscv). > > Since this is step in the initialization of the memory management > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c, > numa_memblks.c and numa_emulation.c. > > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY > MANAGEMENT INITIALIZATION" in MAINTAINERS. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Acked-by: Danilo Krummrich <dakr@kernel.org>
On 8/6/26 08:58, Mike Rapoport (Microsoft) wrote: > arch_numa.c implements boot time discovery and initialization of NUMA > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64 > and riscv). > > Since this is step in the initialization of the memory management > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c, > numa_memblks.c and numa_emulation.c. > > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY > MANAGEMENT INITIALIZATION" in MAINTAINERS. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > --- Acked-by: David Hildenbrand (Arm) <david@kernel.org> -- Cheers, David
On 8/6/26 08:58, Mike Rapoport (Microsoft) wrote: > arch_numa.c implements boot time discovery and initialization of NUMA > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64 > and riscv). > > Since this is step in the initialization of the memory management > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c, > numa_memblks.c and numa_emulation.c. > > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY > MANAGEMENT INITIALIZATION" in MAINTAINERS. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> Acked-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
On Thu, Aug 06, 2026 at 09:58:38AM +0300, Mike Rapoport (Microsoft) wrote:
> arch_numa.c implements boot time discovery and initialization of NUMA
> topology on architectures that select GENERIC_ARCH_NUMA (currently arm64
> and riscv).
>
> Since this is step in the initialization of the memory management
> subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c,
> numa_memblks.c and numa_emulation.c.
>
> Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY
> MANAGEMENT INITIALIZATION" in MAINTAINERS.
>
> Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
Everything is proceeding as I have foreseen... soon we shall have control
of all of the kernel! ;)
Acked-by: Lorenzo Stoakes (ARM) <ljs@kernel.org>
> ---
> MAINTAINERS | 1 +
> drivers/base/Kconfig | 7 -------
> drivers/base/Makefile | 1 -
> mm/Kconfig | 7 +++++++
> mm/Makefile | 1 +
> {drivers/base => mm}/arch_numa.c | 0
> 6 files changed, 9 insertions(+), 8 deletions(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 5114e6db7307..465b64f8e93c 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -16880,6 +16880,7 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock.git fixes
> F: Documentation/core-api/boot-time-mm.rst
> F: include/linux/kho/abi/memblock.h
> F: include/linux/memblock.h
> +F: mm/arch_numa.c
> F: mm/bootmem_info.c
> F: mm/memblock.c
> F: mm/memtest.c
> diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
> index f7d385cbd3ba..1d93bfc34490 100644
> --- a/drivers/base/Kconfig
> +++ b/drivers/base/Kconfig
> @@ -239,13 +239,6 @@ config GENERIC_ARCH_TOPOLOGY
> appropriate scaling, sysfs interface for reading capacity values at
> runtime.
>
> -config GENERIC_ARCH_NUMA
> - bool
> - select NUMA_MEMBLKS
> - help
> - Enable support for generic NUMA implementation. Currently, RISC-V
> - and ARM64 use it.
> -
> config FW_DEVLINK_SYNC_STATE_TIMEOUT
> bool "sync_state() behavior defaults to timeout instead of strict"
> help
> diff --git a/drivers/base/Makefile b/drivers/base/Makefile
> index 8074a10183dc..435710f643a5 100644
> --- a/drivers/base/Makefile
> +++ b/drivers/base/Makefile
> @@ -25,7 +25,6 @@ obj-$(CONFIG_PINCTRL) += pinctrl.o
> obj-$(CONFIG_DEV_COREDUMP) += devcoredump.o
> obj-$(CONFIG_GENERIC_MSI_IRQ) += platform-msi.o
> obj-$(CONFIG_GENERIC_ARCH_TOPOLOGY) += arch_topology.o
> -obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
> obj-$(CONFIG_ACPI) += physical_location.o
>
> obj-y += test/
> diff --git a/mm/Kconfig b/mm/Kconfig
> index 9e0ca4824905..410b8a0a92b9 100644
> --- a/mm/Kconfig
> +++ b/mm/Kconfig
> @@ -1469,6 +1469,13 @@ config NUMA_EMU
> into virtual nodes when booted with "numa=fake=N", where N is the
> number of nodes. This is only useful for debugging.
>
> +config GENERIC_ARCH_NUMA
> + bool
> + select NUMA_MEMBLKS
> + help
> + Enable support for generic NUMA implementation. Currently, RISC-V
> + and ARM64 use it.
> +
> config ARCH_HAS_USER_SHADOW_STACK
> bool
> help
> diff --git a/mm/Makefile b/mm/Makefile
> index eff9f9e7e061..fd29be716fa8 100644
> --- a/mm/Makefile
> +++ b/mm/Makefile
> @@ -122,6 +122,7 @@ obj-$(CONFIG_CMA) += cma.o
> obj-$(CONFIG_NUMA) += numa.o
> obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
> obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
> +obj-$(CONFIG_GENERIC_ARCH_NUMA) += arch_numa.o
> obj-$(CONFIG_BALLOON) += balloon.o
> obj-$(CONFIG_PAGE_EXTENSION) += page_ext.o
> obj-$(CONFIG_PAGE_TABLE_CHECK) += page_table_check.o
> diff --git a/drivers/base/arch_numa.c b/mm/arch_numa.c
> similarity index 100%
> rename from drivers/base/arch_numa.c
> rename to mm/arch_numa.c
>
> ---
> base-commit: 075b74841bd0065a3bda3440873c747938e69b68
> change-id: 20260806-arch-numa-444bb4806114
>
> --
> Sincerely yours,
> Mike.
>
--
Cheers, Lorenzo
On Thu, Aug 06, 2026 at 08:06:12AM +0100, Lorenzo Stoakes (ARM) wrote: > On Thu, Aug 06, 2026 at 09:58:38AM +0300, Mike Rapoport (Microsoft) wrote: > > arch_numa.c implements boot time discovery and initialization of NUMA > > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64 > > and riscv). > > > > Since this is step in the initialization of the memory management > > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c, > > numa_memblks.c and numa_emulation.c. > > > > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY > > MANAGEMENT INITIALIZATION" in MAINTAINERS. > > > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> > > Everything is proceeding as I have foreseen... soon we shall have control > of all of the kernel! ;) I'm also eyeing drivers/base/memory.c, but that one is more involved :) > Acked-by: Lorenzo Stoakes (ARM) <ljs@kernel.org> Thanks! -- Sincerely yours, Mike.
On Thu, Aug 06, 2026 at 09:58:38AM +0300, Mike Rapoport (Microsoft) wrote: > arch_numa.c implements boot time discovery and initialization of NUMA > topology on architectures that select GENERIC_ARCH_NUMA (currently arm64 > and riscv). > > Since this is step in the initialization of the memory management > subsystem, it's logical to have arch_numa.c in mm/ alongside numa.c, > numa_memblks.c and numa_emulation.c. > > Move arch_numa.c to mm/ and add its F: entry to "MEMBLOCK AND MEMORY > MANAGEMENT INITIALIZATION" in MAINTAINERS. > > Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org> No objection from me! Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
© 2016 - 2026 Red Hat, Inc.