[PATCH 3/4] mm: Implement reset_numa_mem
From: Srikar Dronamraju <hidden>
Date: 2020-03-17 13:20:55
Also in:
linux-mm
Subsystem:
generic include/asm header files, the rest · Maintainers:
Arnd Bergmann, Linus Torvalds
For a memoryless or offline nodes, node_numa_mem refers to a N_MEMORY fallback node. Currently kernel has an API set_numa_mem that sets node_numa_mem for memoryless node. However this API cannot be used for offline nodes. Hence all offline nodes will have their node_numa_mem set to 0. However systems can themselves have node 0 as offline i.e memoryless and cpuless at this time. In such cases, node_to_mem_node() fails to provide a N_MEMORY fallback node. Mitigate this by having a new API that sets the default node_numa_mem for offline nodes to be first_memory_node. Cc: Andrew Morton <akpm@linux-foundation.org> Cc: linux-mm@kvack.org Cc: Mel Gorman <mgorman@suse.de> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Sachin Sant <redacted> Cc: Michal Hocko <mhocko@kernel.org> Cc: Christopher Lameter <redacted> Cc: linuxppc-dev@lists.ozlabs.org Cc: Joonsoo Kim <redacted> Cc: Kirill Tkhai <redacted> Cc: Vlastimil Babka <redacted> Cc: Srikar Dronamraju <redacted> Cc: Bharata B Rao <redacted> Reported-by: Sachin Sant <redacted> Tested-by: Sachin Sant <redacted> Signed-off-by: Srikar Dronamraju <redacted> --- include/asm-generic/topology.h | 3 +++ include/linux/topology.h | 7 +++++++ 2 files changed, 10 insertions(+)
diff --git a/include/asm-generic/topology.h b/include/asm-generic/topology.h
index 238873739550..e803ee7850e6 100644
--- a/include/asm-generic/topology.h
+++ b/include/asm-generic/topology.h@@ -68,6 +68,9 @@ #ifndef set_numa_mem #define set_numa_mem(node) #endif +#ifndef reset_numa_mem +#define reset_numa_mem(node) +#endif #ifndef set_cpu_numa_mem #define set_cpu_numa_mem(cpu, node) #endif
diff --git a/include/linux/topology.h b/include/linux/topology.h
index eb2fe6edd73c..bebda80038bf 100644
--- a/include/linux/topology.h
+++ b/include/linux/topology.h@@ -147,6 +147,13 @@ static inline int node_to_mem_node(int node) } #endif +#ifndef reset_numa_mem +static inline void reset_numa_mem(int node) +{ + _node_numa_mem_[node] = first_memory_node; +} +#endif + #ifndef numa_mem_id /* Returns the number of the nearest Node with memory */ static inline int numa_mem_id(void)
--
2.18.1