From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: 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>,
Mike Rapoport <rppt@kernel.org>,
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
Subject: [PATCH v2 19/25] mm: introduce numa_emulation
Date: Tue, 23 Jul 2024 09:41:50 +0300 [thread overview]
Message-ID: <20240723064156.4009477-20-rppt@kernel.org> (raw)
In-Reply-To: <20240723064156.4009477-1-rppt@kernel.org>
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Move numa_emulation codfrom arch/x86 to mm/numa_emulation.c
This code will be later reused by arch_numa.
No functional changes.
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
arch/x86/Kconfig | 8 --------
arch/x86/include/asm/numa.h | 12 ------------
arch/x86/mm/Makefile | 1 -
arch/x86/mm/numa_internal.h | 11 -----------
include/linux/numa_memblks.h | 17 +++++++++++++++++
mm/Kconfig | 8 ++++++++
mm/Makefile | 1 +
{arch/x86/mm => mm}/numa_emulation.c | 4 +---
8 files changed, 27 insertions(+), 35 deletions(-)
rename {arch/x86/mm => mm}/numa_emulation.c (99%)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index d8084f37157c..a42735c126fa 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1592,14 +1592,6 @@ config X86_64_ACPI_NUMA
help
Enable ACPI SRAT based node topology detection.
-config NUMA_EMU
- bool "NUMA emulation"
- depends on NUMA
- help
- Enable NUMA emulation. A flat machine will be split
- into virtual nodes when booted with "numa=fake=N", where N is the
- number of nodes. This is only useful for debugging.
-
config NODES_SHIFT
int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
range 1 10
diff --git a/arch/x86/include/asm/numa.h b/arch/x86/include/asm/numa.h
index 203100500f24..5469d7a7c40f 100644
--- a/arch/x86/include/asm/numa.h
+++ b/arch/x86/include/asm/numa.h
@@ -65,16 +65,4 @@ static inline void init_gi_nodes(void) { }
void debug_cpumask_set_cpu(unsigned int cpu, int node, bool enable);
#endif
-#ifdef CONFIG_NUMA_EMU
-int numa_emu_cmdline(char *str);
-void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
- unsigned int nr_emu_nids);
-u64 __init numa_emu_dma_end(void);
-#else /* CONFIG_NUMA_EMU */
-static inline int numa_emu_cmdline(char *str)
-{
- return -EINVAL;
-}
-#endif /* CONFIG_NUMA_EMU */
-
#endif /* _ASM_X86_NUMA_H */
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index 8d3a00e5c528..690fbf48e853 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -57,7 +57,6 @@ obj-$(CONFIG_MMIOTRACE_TEST) += testmmiotrace.o
obj-$(CONFIG_NUMA) += numa.o numa_$(BITS).o
obj-$(CONFIG_AMD_NUMA) += amdtopology.o
obj-$(CONFIG_ACPI_NUMA) += srat.o
-obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o
obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o
diff --git a/arch/x86/mm/numa_internal.h b/arch/x86/mm/numa_internal.h
index 249e3aaeadce..11e1ff370c10 100644
--- a/arch/x86/mm/numa_internal.h
+++ b/arch/x86/mm/numa_internal.h
@@ -7,15 +7,4 @@
void __init x86_numa_init(void);
-struct numa_meminfo;
-
-#ifdef CONFIG_NUMA_EMU
-void __init numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt);
-#else
-static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt)
-{ }
-#endif
-
#endif /* __X86_MM_NUMA_INTERNAL_H */
diff --git a/include/linux/numa_memblks.h b/include/linux/numa_memblks.h
index 968a590535ac..f81f98678074 100644
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -34,6 +34,23 @@ int __init numa_register_meminfo(struct numa_meminfo *mi);
void __init numa_nodemask_from_meminfo(nodemask_t *nodemask,
const struct numa_meminfo *mi);
+#ifdef CONFIG_NUMA_EMU
+int numa_emu_cmdline(char *str);
+void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
+ unsigned int nr_emu_nids);
+u64 __init numa_emu_dma_end(void);
+void __init numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt);
+#else
+static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt)
+{ }
+static inline int numa_emu_cmdline(char *str)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_NUMA_EMU */
+
#endif /* CONFIG_NUMA_MEMBLKS */
#endif /* __NUMA_MEMBLKS_H */
diff --git a/mm/Kconfig b/mm/Kconfig
index 15c6efbaa1df..ae58eecdefdc 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1252,6 +1252,14 @@ config EXECMEM
config NUMA_MEMBLKS
bool
+config NUMA_EMU
+ bool "NUMA emulation"
+ depends on NUMA_MEMBLKS
+ help
+ Enable NUMA emulation. A flat machine will be split
+ into virtual nodes when booted with "numa=fake=N", where N is the
+ number of nodes. This is only useful for debugging.
+
source "mm/damon/Kconfig"
endmenu
diff --git a/mm/Makefile b/mm/Makefile
index 17bc4013a2c5..d5b1b30f76e3 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -141,3 +141,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
obj-$(CONFIG_EXECMEM) += execmem.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
+obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
diff --git a/arch/x86/mm/numa_emulation.c b/mm/numa_emulation.c
similarity index 99%
rename from arch/x86/mm/numa_emulation.c
rename to mm/numa_emulation.c
index 33610026b7a3..031fb9961bf7 100644
--- a/arch/x86/mm/numa_emulation.c
+++ b/mm/numa_emulation.c
@@ -7,9 +7,7 @@
#include <linux/topology.h>
#include <linux/memblock.h>
#include <linux/numa_memblks.h>
-#include <asm/dma.h>
-
-#include "numa_internal.h"
+#include <asm/numa.h>
#define FAKE_NODE_MIN_SIZE ((u64)32 << 20)
#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
--
2.43.0
WARNING: multiple messages have this Message-ID (diff)
From: Mike Rapoport <rppt@kernel.org>
To: linux-kernel@vger.kernel.org
Cc: 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>,
Mike Rapoport <rppt@kernel.org>,
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
Subject: [PATCH v2 19/25] mm: introduce numa_emulation
Date: Tue, 23 Jul 2024 09:41:50 +0300 [thread overview]
Message-ID: <20240723064156.4009477-20-rppt@kernel.org> (raw)
In-Reply-To: <20240723064156.4009477-1-rppt@kernel.org>
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Move numa_emulation codfrom arch/x86 to mm/numa_emulation.c
This code will be later reused by arch_numa.
No functional changes.
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
arch/x86/Kconfig | 8 --------
arch/x86/include/asm/numa.h | 12 ------------
arch/x86/mm/Makefile | 1 -
arch/x86/mm/numa_internal.h | 11 -----------
include/linux/numa_memblks.h | 17 +++++++++++++++++
mm/Kconfig | 8 ++++++++
mm/Makefile | 1 +
{arch/x86/mm => mm}/numa_emulation.c | 4 +---
8 files changed, 27 insertions(+), 35 deletions(-)
rename {arch/x86/mm => mm}/numa_emulation.c (99%)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index d8084f37157c..a42735c126fa 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1592,14 +1592,6 @@ config X86_64_ACPI_NUMA
help
Enable ACPI SRAT based node topology detection.
-config NUMA_EMU
- bool "NUMA emulation"
- depends on NUMA
- help
- Enable NUMA emulation. A flat machine will be split
- into virtual nodes when booted with "numa=fake=N", where N is the
- number of nodes. This is only useful for debugging.
-
config NODES_SHIFT
int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
range 1 10
diff --git a/arch/x86/include/asm/numa.h b/arch/x86/include/asm/numa.h
index 203100500f24..5469d7a7c40f 100644
--- a/arch/x86/include/asm/numa.h
+++ b/arch/x86/include/asm/numa.h
@@ -65,16 +65,4 @@ static inline void init_gi_nodes(void) { }
void debug_cpumask_set_cpu(unsigned int cpu, int node, bool enable);
#endif
-#ifdef CONFIG_NUMA_EMU
-int numa_emu_cmdline(char *str);
-void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
- unsigned int nr_emu_nids);
-u64 __init numa_emu_dma_end(void);
-#else /* CONFIG_NUMA_EMU */
-static inline int numa_emu_cmdline(char *str)
-{
- return -EINVAL;
-}
-#endif /* CONFIG_NUMA_EMU */
-
#endif /* _ASM_X86_NUMA_H */
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index 8d3a00e5c528..690fbf48e853 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -57,7 +57,6 @@ obj-$(CONFIG_MMIOTRACE_TEST) += testmmiotrace.o
obj-$(CONFIG_NUMA) += numa.o numa_$(BITS).o
obj-$(CONFIG_AMD_NUMA) += amdtopology.o
obj-$(CONFIG_ACPI_NUMA) += srat.o
-obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o
obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o
diff --git a/arch/x86/mm/numa_internal.h b/arch/x86/mm/numa_internal.h
index 249e3aaeadce..11e1ff370c10 100644
--- a/arch/x86/mm/numa_internal.h
+++ b/arch/x86/mm/numa_internal.h
@@ -7,15 +7,4 @@
void __init x86_numa_init(void);
-struct numa_meminfo;
-
-#ifdef CONFIG_NUMA_EMU
-void __init numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt);
-#else
-static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt)
-{ }
-#endif
-
#endif /* __X86_MM_NUMA_INTERNAL_H */
diff --git a/include/linux/numa_memblks.h b/include/linux/numa_memblks.h
index 968a590535ac..f81f98678074 100644
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -34,6 +34,23 @@ int __init numa_register_meminfo(struct numa_meminfo *mi);
void __init numa_nodemask_from_meminfo(nodemask_t *nodemask,
const struct numa_meminfo *mi);
+#ifdef CONFIG_NUMA_EMU
+int numa_emu_cmdline(char *str);
+void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
+ unsigned int nr_emu_nids);
+u64 __init numa_emu_dma_end(void);
+void __init numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt);
+#else
+static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt)
+{ }
+static inline int numa_emu_cmdline(char *str)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_NUMA_EMU */
+
#endif /* CONFIG_NUMA_MEMBLKS */
#endif /* __NUMA_MEMBLKS_H */
diff --git a/mm/Kconfig b/mm/Kconfig
index 15c6efbaa1df..ae58eecdefdc 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1252,6 +1252,14 @@ config EXECMEM
config NUMA_MEMBLKS
bool
+config NUMA_EMU
+ bool "NUMA emulation"
+ depends on NUMA_MEMBLKS
+ help
+ Enable NUMA emulation. A flat machine will be split
+ into virtual nodes when booted with "numa=fake=N", where N is the
+ number of nodes. This is only useful for debugging.
+
source "mm/damon/Kconfig"
endmenu
diff --git a/mm/Makefile b/mm/Makefile
index 17bc4013a2c5..d5b1b30f76e3 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -141,3 +141,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
obj-$(CONFIG_EXECMEM) += execmem.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
+obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
diff --git a/arch/x86/mm/numa_emulation.c b/mm/numa_emulation.c
similarity index 99%
rename from arch/x86/mm/numa_emulation.c
rename to mm/numa_emulation.c
index 33610026b7a3..031fb9961bf7 100644
--- a/arch/x86/mm/numa_emulation.c
+++ b/mm/numa_emulation.c
@@ -7,9 +7,7 @@
#include <linux/topology.h>
#include <linux/memblock.h>
#include <linux/numa_memblks.h>
-#include <asm/dma.h>
-
-#include "numa_internal.h"
+#include <asm/numa.h>
#define FAKE_NODE_MIN_SIZE ((u64)32 << 20)
#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
--
2.43.0
_______________________________________________
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: linux-kernel@vger.kernel.org
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-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>,
Davidlohr Bueso <dave@stgolabs.net>,
Vasily Gorbik <gor@linux.ibm.com>,
Jonathan Corbet <corbet@lwn.net>,
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>,
Zi Yan <ziy@nvidia.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-doc@vger.kernel.org, linux-mips@vger.kernel.org,
Samuel Holland <samuel.holland@sifive.com>,
linux-riscv@lists.infradead.org,
Palmer Dabbelt <palmer@dabbelt.com>,
Jonathan Cameron <jonathan.cameron@huawei.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linuxppc-dev@lists.ozlabs.org,
"David S. Miller" <davem@davemloft.net>,
Mike Rapoport <rppt@kernel.org>
Subject: [PATCH v2 19/25] mm: introduce numa_emulation
Date: Tue, 23 Jul 2024 09:41:50 +0300 [thread overview]
Message-ID: <20240723064156.4009477-20-rppt@kernel.org> (raw)
In-Reply-To: <20240723064156.4009477-1-rppt@kernel.org>
From: "Mike Rapoport (Microsoft)" <rppt@kernel.org>
Move numa_emulation codfrom arch/x86 to mm/numa_emulation.c
This code will be later reused by arch_numa.
No functional changes.
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
---
arch/x86/Kconfig | 8 --------
arch/x86/include/asm/numa.h | 12 ------------
arch/x86/mm/Makefile | 1 -
arch/x86/mm/numa_internal.h | 11 -----------
include/linux/numa_memblks.h | 17 +++++++++++++++++
mm/Kconfig | 8 ++++++++
mm/Makefile | 1 +
{arch/x86/mm => mm}/numa_emulation.c | 4 +---
8 files changed, 27 insertions(+), 35 deletions(-)
rename {arch/x86/mm => mm}/numa_emulation.c (99%)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index d8084f37157c..a42735c126fa 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1592,14 +1592,6 @@ config X86_64_ACPI_NUMA
help
Enable ACPI SRAT based node topology detection.
-config NUMA_EMU
- bool "NUMA emulation"
- depends on NUMA
- help
- Enable NUMA emulation. A flat machine will be split
- into virtual nodes when booted with "numa=fake=N", where N is the
- number of nodes. This is only useful for debugging.
-
config NODES_SHIFT
int "Maximum NUMA Nodes (as a power of 2)" if !MAXSMP
range 1 10
diff --git a/arch/x86/include/asm/numa.h b/arch/x86/include/asm/numa.h
index 203100500f24..5469d7a7c40f 100644
--- a/arch/x86/include/asm/numa.h
+++ b/arch/x86/include/asm/numa.h
@@ -65,16 +65,4 @@ static inline void init_gi_nodes(void) { }
void debug_cpumask_set_cpu(unsigned int cpu, int node, bool enable);
#endif
-#ifdef CONFIG_NUMA_EMU
-int numa_emu_cmdline(char *str);
-void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
- unsigned int nr_emu_nids);
-u64 __init numa_emu_dma_end(void);
-#else /* CONFIG_NUMA_EMU */
-static inline int numa_emu_cmdline(char *str)
-{
- return -EINVAL;
-}
-#endif /* CONFIG_NUMA_EMU */
-
#endif /* _ASM_X86_NUMA_H */
diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
index 8d3a00e5c528..690fbf48e853 100644
--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -57,7 +57,6 @@ obj-$(CONFIG_MMIOTRACE_TEST) += testmmiotrace.o
obj-$(CONFIG_NUMA) += numa.o numa_$(BITS).o
obj-$(CONFIG_AMD_NUMA) += amdtopology.o
obj-$(CONFIG_ACPI_NUMA) += srat.o
-obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
obj-$(CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS) += pkeys.o
obj-$(CONFIG_RANDOMIZE_MEMORY) += kaslr.o
diff --git a/arch/x86/mm/numa_internal.h b/arch/x86/mm/numa_internal.h
index 249e3aaeadce..11e1ff370c10 100644
--- a/arch/x86/mm/numa_internal.h
+++ b/arch/x86/mm/numa_internal.h
@@ -7,15 +7,4 @@
void __init x86_numa_init(void);
-struct numa_meminfo;
-
-#ifdef CONFIG_NUMA_EMU
-void __init numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt);
-#else
-static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
- int numa_dist_cnt)
-{ }
-#endif
-
#endif /* __X86_MM_NUMA_INTERNAL_H */
diff --git a/include/linux/numa_memblks.h b/include/linux/numa_memblks.h
index 968a590535ac..f81f98678074 100644
--- a/include/linux/numa_memblks.h
+++ b/include/linux/numa_memblks.h
@@ -34,6 +34,23 @@ int __init numa_register_meminfo(struct numa_meminfo *mi);
void __init numa_nodemask_from_meminfo(nodemask_t *nodemask,
const struct numa_meminfo *mi);
+#ifdef CONFIG_NUMA_EMU
+int numa_emu_cmdline(char *str);
+void __init numa_emu_update_cpu_to_node(int *emu_nid_to_phys,
+ unsigned int nr_emu_nids);
+u64 __init numa_emu_dma_end(void);
+void __init numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt);
+#else
+static inline void numa_emulation(struct numa_meminfo *numa_meminfo,
+ int numa_dist_cnt)
+{ }
+static inline int numa_emu_cmdline(char *str)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_NUMA_EMU */
+
#endif /* CONFIG_NUMA_MEMBLKS */
#endif /* __NUMA_MEMBLKS_H */
diff --git a/mm/Kconfig b/mm/Kconfig
index 15c6efbaa1df..ae58eecdefdc 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -1252,6 +1252,14 @@ config EXECMEM
config NUMA_MEMBLKS
bool
+config NUMA_EMU
+ bool "NUMA emulation"
+ depends on NUMA_MEMBLKS
+ help
+ Enable NUMA emulation. A flat machine will be split
+ into virtual nodes when booted with "numa=fake=N", where N is the
+ number of nodes. This is only useful for debugging.
+
source "mm/damon/Kconfig"
endmenu
diff --git a/mm/Makefile b/mm/Makefile
index 17bc4013a2c5..d5b1b30f76e3 100644
--- a/mm/Makefile
+++ b/mm/Makefile
@@ -141,3 +141,4 @@ obj-$(CONFIG_SHRINKER_DEBUG) += shrinker_debug.o
obj-$(CONFIG_EXECMEM) += execmem.o
obj-$(CONFIG_NUMA) += numa.o
obj-$(CONFIG_NUMA_MEMBLKS) += numa_memblks.o
+obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
diff --git a/arch/x86/mm/numa_emulation.c b/mm/numa_emulation.c
similarity index 99%
rename from arch/x86/mm/numa_emulation.c
rename to mm/numa_emulation.c
index 33610026b7a3..031fb9961bf7 100644
--- a/arch/x86/mm/numa_emulation.c
+++ b/mm/numa_emulation.c
@@ -7,9 +7,7 @@
#include <linux/topology.h>
#include <linux/memblock.h>
#include <linux/numa_memblks.h>
-#include <asm/dma.h>
-
-#include "numa_internal.h"
+#include <asm/numa.h>
#define FAKE_NODE_MIN_SIZE ((u64)32 << 20)
#define FAKE_NODE_MIN_HASH_MASK (~(FAKE_NODE_MIN_SIZE - 1UL))
--
2.43.0
next prev parent reply other threads:[~2024-07-23 6:45 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-23 6:41 [PATCH v2 00/25] mm: introduce numa_memblks Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 01/25] mm: move kernel/numa.c to mm/ Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 02/25] MIPS: sgi-ip27: make NODE_DATA() the same as on all other architectures Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 03/25] MIPS: sgi-ip27: ensure node_possible_map only contains valid nodes Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 04/25] MIPS: sgi-ip27: drop HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 05/25] MIPS: loongson64: rename __node_data to node_data Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 06/25] MIPS: loongson64: drop HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 07/25] mm: drop CONFIG_HAVE_ARCH_NODEDATA_EXTENSION Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 08/25] arch, mm: move definition of node_data to generic code Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 09/25] arch, mm: pull out allocation of NODE_DATA " Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 10/25] x86/numa: simplify numa_distance allocation Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 11/25] x86/numa: use get_pfn_range_for_nid to verify that node spans memory Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 12/25] x86/numa: move FAKE_NODE_* defines to numa_emu Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 13/25] x86/numa_emu: simplify allocation of phys_dist Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 14/25] x86/numa_emu: split __apicid_to_node update to a helper function Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 15/25] x86/numa_emu: use a helper function to get MAX_DMA32_PFN Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 16/25] x86/numa: numa_{add,remove}_cpu: make cpu parameter unsigned Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 17/25] mm: introduce numa_memblks Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 18/25] mm: move numa_distance and related code from x86 to numa_memblks Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport [this message]
2024-07-23 6:41 ` [PATCH v2 19/25] mm: introduce numa_emulation Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 20/25] mm: numa_memblks: introduce numa_memblks_init Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 21/25] mm: numa_memblks: make several functions and variables static Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 22/25] mm: numa_memblks: use memblock_{start,end}_of_DRAM() when sanitizing meminfo Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 23/25] arch_numa: switch over to numa_memblks Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 24/25] mm: make range-to-target_node lookup facility a part of numa_memblks Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` [PATCH v2 25/25] docs: move numa=fake description to kernel-parameters.txt Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-23 6:41 ` Mike Rapoport
2024-07-24 22:44 ` [PATCH v2 00/25] mm: introduce numa_memblks Zi Yan
2024-07-24 22:44 ` Zi Yan
2024-07-24 22:44 ` Zi Yan
2024-07-25 0:35 ` Zi Yan
2024-07-25 0:35 ` Zi Yan
2024-07-25 0:35 ` Zi Yan
2024-07-25 2:48 ` Zi Yan
2024-07-25 2:48 ` Zi Yan
2024-07-25 2:48 ` Zi Yan
2024-07-26 9:40 ` Mike Rapoport
2024-07-26 9:40 ` Mike Rapoport
2024-07-26 9:40 ` 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=20240723064156.4009477-20-rppt@kernel.org \
--to=rppt@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=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.