Punit Agrawal <punit.agrawal@xxxxxxx> writes: [...] > > CONFIG_HAVE_MEMORYLESS node is not enabled on arm64 which means we end > up returning the original node in the fallback path. > > Xie, does the below patch help? I can submit a proper patch if this > fixes the issue for you. > > -- >8 -- > Subject: [PATCH] arm64/numa: Enable memoryless numa nodes > > Signed-off-by: Punit Agrawal <punit.agrawal@xxxxxxx> > --- > arch/arm64/Kconfig | 4 ++++ > arch/arm64/mm/numa.c | 2 ++ > 2 files changed, 6 insertions(+) > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index eb2cf4938f6d..5317e9aa93ab 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -756,6 +756,10 @@ config USE_PERCPU_NUMA_NODE_ID > def_bool y > depends on NUMA > > +config HAVE_MEMORYLESS_NODES > + def_bool y > + depends on NUMA > + > config HAVE_SETUP_PER_CPU_AREA > def_bool y > depends on NUMA > diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c > index dad128ba98bf..c699dcfe93de 100644 > --- a/arch/arm64/mm/numa.c > +++ b/arch/arm64/mm/numa.c > @@ -73,6 +73,8 @@ EXPORT_SYMBOL(cpumask_of_node); > static void map_cpu_to_node(unsigned int cpu, int nid) > { > set_cpu_numa_node(cpu, nid); > + set_numa_mem(local_memory_node(nid)); Argh, this should be set_cpu_numa_mem(cpu, local_memory_node(nid)); There is not guarantee that map_cpu_to_node() will be called on the local cpu. Hanjun, Xie - can you try with the update please? Thanks, Punit > + > if (nid >= 0) > cpumask_set_cpu(cpu, node_to_cpumask_map[nid]); > }