Add support for CONFIG NUMA to ARM


 * Summary: Add support for CONFIG_NUMA to ARM
 * Proposer: Tim Bird, Sony Mobile
 * Status: Selected to be sponsored by the CE Workgroup

Description
ARM does not currently support CONFIG_NUMA. In some embedded products, it is useful to treat separate sections of memory as non-uniform, even if the hardware is only presenting a single, uniform range of memory.

The NUMA features in the kernel allow portions of physical memory to represented by different NUMA nodes. The NUMA code also handles initialization of memory management for the nodes on a per-node basis. Also, the description of the division of memory into nodes can be passed from the kernel commandline by end users.

Thus after the system is booted up the the memory management code can use this partitioning/division of memory to provide features which are based on memory nodes. For example, some memory regions can be made read-only while others can be made read-write.

Related work

 * In this commit id, Russel King removed DISCONTIGMEM support for ARM from the kernel and directed people to start using SPARSEMEM
 * https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=be370302742ff9948f2a42b15cb2ba174d97b930
 * Linaro has worked on NUMA support for ARM
 * See https://wiki.linaro.org/LEG/Engineering/Kernel/NUMA
 * Russell King has questioned the value of NUMA support, for machines that don't actually have physically non-uniform memory
 * http://lists.infradead.org/pipermail/linux-arm-kernel/2012-December/137119.html

Scope
This one is probably pretty large. (But maybe not since Linaro already has something apparently working.) Complete wild guess: 12 weeks.

Contractor Candidates
Unknown