Hi, On 7/12/19 2:02 PM, Michal Hocko wrote: > On Thu 11-07-19 23:25:44, Hoan Tran OS wrote: >> 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. > > Yes it can occur on any arch but most sane platforms simply do not > overlap physical ranges. So I do not really see any reason to > unconditionally enable the config for everybody. What is an advantage? > As I observed from arch folder, there are 9 arch support NUMA config. ./arch/ia64/Kconfig:387:config NUMA ./arch/powerpc/Kconfig:582:config NUMA ./arch/sparc/Kconfig:281:config NUMA ./arch/alpha/Kconfig:557:config NUMA ./arch/sh/mm/Kconfig:112:config NUMA ./arch/arm64/Kconfig:841:config NUMA ./arch/x86/Kconfig:1531:config NUMA ./arch/mips/Kconfig:2646:config NUMA ./arch/s390/Kconfig:441:config NUMA And there are 5 arch enables CONFIG_NODES_SPAN_OTHER_NODES with NUMA arch/powerpc/Kconfig:637:config NODES_SPAN_OTHER_NODES arch/sparc/Kconfig:299:config NODES_SPAN_OTHER_NODES arch/x86/Kconfig:1575:config NODES_SPAN_OTHER_NODES arch/s390/Kconfig:446:config NODES_SPAN_OTHER_NODES arch/arm64 (which I intended to enable in the original patch) It would be good if we can enable it by-default. Otherwise, let arch enables it by them-self. Do you have any suggestions? Thanks Hoan