[PATCH 3/4] mm: Implement reset_numa_mem
Srikar Dronamraju
srikar at linux.vnet.ibm.com
Wed Mar 18 00:17:52 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>
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