public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] x86/numa: Add Devicetree support
@ 2023-06-27  7:28 Saurabh Sengar
  2023-07-12  8:11 ` Saurabh Singh Sengar
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Saurabh Sengar @ 2023-06-27  7:28 UTC (permalink / raw)
  To: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, mikelley,
	linux-kernel
  Cc: ssengar

Hyper-V has usecases where it need to fetch NUMA information from
Devicetree. Currently, it is not possible to extract the NUMA
information from Devicetree for x86 arch.

Add support for Devicetree in the x86_numa_init function, allowing
the retrieval of NUMA node information from the Devicetree.

Additionally, relocate the x86_dtb_init function before initmem_init
to ensure the Devicetree initialization prior to its utilization in
x86_numa_init.

Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
---
 arch/x86/Kconfig        | 1 +
 arch/x86/kernel/setup.c | 2 +-
 arch/x86/mm/numa.c      | 3 +++
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index c531b16ee0bf..a2ada193b2d8 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1567,6 +1567,7 @@ config NUMA
 	depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
 	default y if X86_BIGSMP
 	select USE_PERCPU_NUMA_NODE_ID
+	select OF_NUMA if OF
 	help
 	  Enable NUMA (Non-Uniform Memory Access) support.
 
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index fd975a4a5200..940c92a6a5e9 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1220,6 +1220,7 @@ void __init setup_arch(char **cmdline_p)
 
 	early_acpi_boot_init();
 
+	x86_dtb_init();
 	initmem_init();
 	dma_contiguous_reserve(max_pfn_mapped << PAGE_SHIFT);
 
@@ -1261,7 +1262,6 @@ void __init setup_arch(char **cmdline_p)
 	 * Read APIC and some other early information from ACPI tables.
 	 */
 	acpi_boot_init();
-	x86_dtb_init();
 
 	/*
 	 * get boot-time SMP configuration:
diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
index 2aadb2019b4f..a6d3d331fda2 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -11,6 +11,7 @@
 #include <linux/nodemask.h>
 #include <linux/sched.h>
 #include <linux/topology.h>
+#include <linux/of.h>
 
 #include <asm/e820/api.h>
 #include <asm/proto.h>
@@ -733,6 +734,8 @@ void __init x86_numa_init(void)
 		if (!numa_init(amd_numa_init))
 			return;
 #endif
+		if (acpi_disabled && !numa_init(of_numa_init))
+			return;
 	}
 
 	numa_init(dummy_numa_init);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-08-24 16:00 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-27  7:28 [PATCH] x86/numa: Add Devicetree support Saurabh Sengar
2023-07-12  8:11 ` Saurabh Singh Sengar
2023-07-27  8:06   ` Saurabh Singh Sengar
2023-08-02 18:49 ` Michael Kelley (LINUX)
2023-08-11 10:29   ` Saurabh Singh Sengar
2023-08-24  5:16     ` Saurabh Singh Sengar
2023-08-24 15:28 ` Thomas Gleixner
2023-08-24 15:59   ` Saurabh Singh Sengar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox