[tip:,x86/platform] x86/numa: Add Devicetree support

Message ID 169627566214.3135.17645034772157973524.tip-bot2@tip-bot2
State New
Headers
Series [tip:,x86/platform] x86/numa: Add Devicetree support |

Commit Message

tip-bot2 for Thomas Gleixner Oct. 2, 2023, 7:41 p.m. UTC
  The following commit has been merged into the x86/platform branch of tip:

Commit-ID:     0c436a58292d0ca1af213ede75b2508995c8af0b
Gitweb:        https://git.kernel.org/tip/0c436a58292d0ca1af213ede75b2508995c8af0b
Author:        Saurabh Sengar <ssengar@linux.microsoft.com>
AuthorDate:    Fri, 25 Aug 2023 00:47:37 -07:00
Committer:     Ingo Molnar <mingo@kernel.org>
CommitterDate: Mon, 02 Oct 2023 21:30:20 +02:00

x86/numa: Add Devicetree support

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

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

Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Link: https://lore.kernel.org/r/1692949657-16446-2-git-send-email-ssengar@linux.microsoft.com
---
 arch/x86/Kconfig   | 1 +
 arch/x86/mm/numa.c | 3 +++
 2 files changed, 4 insertions(+)
  

Patch

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 66bfaba..aab5e32 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1534,6 +1534,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/mm/numa.c b/arch/x86/mm/numa.c
index 2aadb20..c79f12e 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -3,6 +3,7 @@ 
 #include <linux/acpi.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
+#include <linux/of.h>
 #include <linux/string.h>
 #include <linux/init.h>
 #include <linux/memblock.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);