[PATCH v2 3/4] mm: Implement reset_numa_mem

Srikar Dronamraju srikar at linux.vnet.ibm.com
Wed Mar 18 18:28:09 AEDT 2020


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 at linux-foundation.org>
Cc: linux-mm at kvack.org
Cc: Mel Gorman <mgorman at suse.de>
Cc: Michael Ellerman <mpe at ellerman.id.au>
Cc: Sachin Sant <sachinp at linux.vnet.ibm.com>
Cc: Michal Hocko <mhocko at kernel.org>
Cc: Christopher Lameter <cl at linux.com>
Cc: linuxppc-dev at lists.ozlabs.org
Cc: Joonsoo Kim <iamjoonsoo.kim at lge.com>
Cc: Kirill Tkhai <ktkhai at virtuozzo.com>
Cc: Vlastimil Babka <vbabka at suse.cz>
Cc: Srikar Dronamraju <srikar at linux.vnet.ibm.com>
Cc: Bharata B Rao <bharata at linux.ibm.com>
Cc: Nathan Lynch <nathanl at linux.ibm.com>

Reported-by: Sachin Sant <sachinp at linux.vnet.ibm.com>
Tested-by: Sachin Sant <sachinp at linux.vnet.ibm.com>
Signed-off-by: Srikar Dronamraju <srikar at linux.vnet.ibm.com>
---
 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



More information about the Linuxppc-dev mailing list