Messages in this thread Patch in this message | | | From | Hoan Tran OS <> | Subject | [PATCH v2 1/5] mm: Enable CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA | Date | Thu, 11 Jul 2019 23:25:46 +0000 |
| |
In NUMA layout which nodes have memory ranges that span across other nodes, the mm driver can detect the memory node id incorrectly.
For example, with layout below Node 0 address: 0000 xxxx 0000 xxxx Node 1 address: xxxx 1111 xxxx 1111
Note: - Memory from low to high - 0/1: Node id - x: Invalid memory of a node
When mm probes the memory map, without CONFIG_NODES_SPAN_OTHER_NODES config, mm only checks the memory validity but not the node id. Because of that, Node 1 also detects the memory from node 0 as below when it scans from the start address to the end address of node 1.
Node 0 address: 0000 xxxx xxxx xxxx Node 1 address: xxxx 1111 1111 1111
This layout could occur on any architecture. This patch enables CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA to fix this issue.
Signed-off-by: Hoan Tran <Hoan@os.amperecomputing.com> --- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d66bc8a..6335505 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1413,7 +1413,7 @@ int __meminit early_pfn_to_nid(unsigned long pfn) } #endif -#ifdef CONFIG_NODES_SPAN_OTHER_NODES +#ifdef CONFIG_NUMA /* Only safe to use early in boot when initialisation is single-threaded */ static inline bool __meminit early_pfn_in_nid(unsigned long pfn, int node) { -- 2.7.4
| |