RE: [PATCH] x86/numa: Add Devicetree support

Saurabh Singh Sengar
2023-07-27T08:11:33Z

> -----Original Message-----
> From: Saurabh Singh Sengar <ssengar@microsoft.com>
> Sent: Wednesday, July 12, 2023 1:42 PM
> To: Saurabh Sengar <ssengar@linux.microsoft.com>; tglx@linutronix.de;
> mingo@redhat.com; bp@alien8.de; dave.hansen@linux.intel.com;
> x86@kernel.org; hpa@zytor.com; luto@kernel.org; peterz@infradead.org;
> Michael Kelley (LINUX) <mikelley@microsoft.com>; linux-
> kernel@vger.kernel.org; Sharath George John <sgeorgejohn@microsoft.com>
> Subject: [EXTERNAL] RE: [PATCH] x86/numa: Add Devicetree support
>
>
>
> > -----Original Message-----
> > From: Saurabh Sengar <ssengar@linux.microsoft.com>
> > Sent: Tuesday, June 27, 2023 12:58 PM
> > To: tglx@linutronix.de; mingo@redhat.com; bp@alien8.de;
> > dave.hansen@linux.intel.com; x86@kernel.org; hpa@zytor.com;
> > luto@kernel.org; peterz@infradead.org; Michael Kelley (LINUX)
> > <mikelley@microsoft.com>; linux-kernel@vger.kernel.org
> > Cc: ssengar@linux.microsoft.com
> > Subject: [PATCH] x86/numa: Add Devicetree support
> >
> > 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
>
> Hi x86 Maintainers,
>
> May I get your feedback on this patch.
>
> Regards,
> Saurabh

Kind reminder to review this patch.

- Saurabh