[PATCH v3 0/5] mm: Enable CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA

Hoan Tran
2020-03-28T18:32:12Z

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. Most of them enables
this config by default with CONFIG_NUMA. This patch, by default, enables
CONFIG_NODES_SPAN_OTHER_NODES or uses early_pfn_in_nid() for NUMA.

v3:
* Revise the patch description

V2:
* Revise the patch description

Hoan Tran (5):
mm: Enable CONFIG_NODES_SPAN_OTHER_NODES by default for NUMA
powerpc: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES
x86: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES
sparc: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES
s390: Kconfig: Remove CONFIG_NODES_SPAN_OTHER_NODES

arch/powerpc/Kconfig | 9 ---------
arch/s390/Kconfig | 8 --------
arch/sparc/Kconfig | 9 ---------
arch/x86/Kconfig | 9 ---------
mm/page_alloc.c | 2 +-
5 files changed, 1 insertion(+), 36 deletions(-)

--
1.8.3.1