1e1785e85SDave Hansenconfig SELECT_MEMORY_MODEL 2e1785e85SDave Hansen def_bool y 3e1785e85SDave Hansen depends on EXPERIMENTAL || ARCH_SELECT_MEMORY_MODEL 4e1785e85SDave Hansen 53a9da765SDave Hansenchoice 63a9da765SDave Hansen prompt "Memory model" 7e1785e85SDave Hansen depends on SELECT_MEMORY_MODEL 8e1785e85SDave Hansen default DISCONTIGMEM_MANUAL if ARCH_DISCONTIGMEM_DEFAULT 9*d41dee36SAndy Whitcroft default SPARSEMEM_MANUAL if ARCH_SPARSEMEM_DEFAULT 10e1785e85SDave Hansen default FLATMEM_MANUAL 113a9da765SDave Hansen 12e1785e85SDave Hansenconfig FLATMEM_MANUAL 133a9da765SDave Hansen bool "Flat Memory" 143a9da765SDave Hansen depends on !ARCH_DISCONTIGMEM_ENABLE || ARCH_FLATMEM_ENABLE 153a9da765SDave Hansen help 163a9da765SDave Hansen This option allows you to change some of the ways that 173a9da765SDave Hansen Linux manages its memory internally. Most users will 183a9da765SDave Hansen only have one option here: FLATMEM. This is normal 193a9da765SDave Hansen and a correct option. 203a9da765SDave Hansen 21*d41dee36SAndy Whitcroft Some users of more advanced features like NUMA and 22*d41dee36SAndy Whitcroft memory hotplug may have different options here. 23*d41dee36SAndy Whitcroft DISCONTIGMEM is an more mature, better tested system, 24*d41dee36SAndy Whitcroft but is incompatible with memory hotplug and may suffer 25*d41dee36SAndy Whitcroft decreased performance over SPARSEMEM. If unsure between 26*d41dee36SAndy Whitcroft "Sparse Memory" and "Discontiguous Memory", choose 27*d41dee36SAndy Whitcroft "Discontiguous Memory". 28*d41dee36SAndy Whitcroft 29*d41dee36SAndy Whitcroft If unsure, choose this option (Flat Memory) over any other. 303a9da765SDave Hansen 31e1785e85SDave Hansenconfig DISCONTIGMEM_MANUAL 323a9da765SDave Hansen bool "Discontigious Memory" 333a9da765SDave Hansen depends on ARCH_DISCONTIGMEM_ENABLE 343a9da765SDave Hansen help 35785dcd44SDave Hansen This option provides enhanced support for discontiguous 36785dcd44SDave Hansen memory systems, over FLATMEM. These systems have holes 37785dcd44SDave Hansen in their physical address spaces, and this option provides 38785dcd44SDave Hansen more efficient handling of these holes. However, the vast 39785dcd44SDave Hansen majority of hardware has quite flat address spaces, and 40785dcd44SDave Hansen can have degraded performance from extra overhead that 41785dcd44SDave Hansen this option imposes. 42785dcd44SDave Hansen 43785dcd44SDave Hansen Many NUMA configurations will have this as the only option. 44785dcd44SDave Hansen 453a9da765SDave Hansen If unsure, choose "Flat Memory" over this option. 463a9da765SDave Hansen 47*d41dee36SAndy Whitcroftconfig SPARSEMEM_MANUAL 48*d41dee36SAndy Whitcroft bool "Sparse Memory" 49*d41dee36SAndy Whitcroft depends on ARCH_SPARSEMEM_ENABLE 50*d41dee36SAndy Whitcroft help 51*d41dee36SAndy Whitcroft This will be the only option for some systems, including 52*d41dee36SAndy Whitcroft memory hotplug systems. This is normal. 53*d41dee36SAndy Whitcroft 54*d41dee36SAndy Whitcroft For many other systems, this will be an alternative to 55*d41dee36SAndy Whitcroft "Discontigious Memory". This option provides some potential 56*d41dee36SAndy Whitcroft performance benefits, along with decreased code complexity, 57*d41dee36SAndy Whitcroft but it is newer, and more experimental. 58*d41dee36SAndy Whitcroft 59*d41dee36SAndy Whitcroft If unsure, choose "Discontiguous Memory" or "Flat Memory" 60*d41dee36SAndy Whitcroft over this option. 61*d41dee36SAndy Whitcroft 623a9da765SDave Hansenendchoice 633a9da765SDave Hansen 64e1785e85SDave Hansenconfig DISCONTIGMEM 65e1785e85SDave Hansen def_bool y 66e1785e85SDave Hansen depends on (!SELECT_MEMORY_MODEL && ARCH_DISCONTIGMEM_ENABLE) || DISCONTIGMEM_MANUAL 67e1785e85SDave Hansen 68*d41dee36SAndy Whitcroftconfig SPARSEMEM 69*d41dee36SAndy Whitcroft def_bool y 70*d41dee36SAndy Whitcroft depends on SPARSEMEM_MANUAL 71*d41dee36SAndy Whitcroft 72e1785e85SDave Hansenconfig FLATMEM 73e1785e85SDave Hansen def_bool y 74*d41dee36SAndy Whitcroft depends on (!DISCONTIGMEM && !SPARSEMEM) || FLATMEM_MANUAL 75*d41dee36SAndy Whitcroft 76*d41dee36SAndy Whitcroftconfig FLAT_NODE_MEM_MAP 77*d41dee36SAndy Whitcroft def_bool y 78*d41dee36SAndy Whitcroft depends on !SPARSEMEM 79e1785e85SDave Hansen 8093b7504eSDave Hansen# 8193b7504eSDave Hansen# Both the NUMA code and DISCONTIGMEM use arrays of pg_data_t's 8293b7504eSDave Hansen# to represent different areas of memory. This variable allows 8393b7504eSDave Hansen# those dependencies to exist individually. 8493b7504eSDave Hansen# 8593b7504eSDave Hansenconfig NEED_MULTIPLE_NODES 8693b7504eSDave Hansen def_bool y 8793b7504eSDave Hansen depends on DISCONTIGMEM || NUMA 88af705362SAndy Whitcroft 89af705362SAndy Whitcroftconfig HAVE_MEMORY_PRESENT 90af705362SAndy Whitcroft def_bool y 91*d41dee36SAndy Whitcroft depends on ARCH_HAVE_MEMORY_PRESENT || SPARSEMEM 92