[RFC][PATCH 2/4] make each arch use mm/Kconfig

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



With sparsemem being introduced, we need a central place for new
memory-related .config options: mm/Kconfig.

For all architectures, this just means that you'll see a
"Memory Model" choice in your architecture menu. For those that
implement DISCONTIGMEM, you may eventually want to make your
ARCH_DISCONTIGMEM_ENABLE a "def_bool y" and make your users
select DISCONTIGMEM right out of the new choice menu.  The only
disadvantage might be if you have some specific things that you
need in your help option for DISCONTIGMEM.  

The new option, CONFIG_FLATMEM, is there to enable us to detangle
NUMA and DISCONTIGMEM.  This is a requirement for sparsemem
because sparsemem uses the NUMA code without the presence of
DISCONTIGMEM. The sparsemem patches use CONFIG_FLATMEM in generic
code, so this patch is a requirement before applying them.

Almost all places that used to do '#ifndef CONFIG_DISCONTIGMEM'
should use '#ifdef CONFIG_FLATMEM' instead.
Signed-off-by: Dave Hansen <[email protected]>
---

 memhotplug-dave/arch/alpha/Kconfig     |    4 +++-
 memhotplug-dave/arch/arm/Kconfig       |    4 +++-
 memhotplug-dave/arch/arm26/Kconfig     |    2 ++
 memhotplug-dave/arch/cris/Kconfig      |    2 ++
 memhotplug-dave/arch/frv/Kconfig       |    2 ++
 memhotplug-dave/arch/h8300/Kconfig.cpu |    3 +++
 memhotplug-dave/arch/i386/Kconfig      |    4 +++-
 memhotplug-dave/arch/ia64/Kconfig      |    4 +++-
 memhotplug-dave/arch/m32r/Kconfig      |    4 +++-
 memhotplug-dave/arch/m68k/Kconfig      |    2 ++
 memhotplug-dave/arch/m68knommu/Kconfig |    2 ++
 memhotplug-dave/arch/mips/Kconfig      |    6 +++++-
 memhotplug-dave/arch/parisc/Kconfig    |    8 +++++++-
 memhotplug-dave/arch/ppc/Kconfig       |    2 ++
 memhotplug-dave/arch/ppc64/Kconfig     |    4 +++-
 memhotplug-dave/arch/s390/Kconfig      |    2 ++
 memhotplug-dave/arch/sh/Kconfig        |    8 +++++++-
 memhotplug-dave/arch/sh64/Kconfig      |    2 ++
 memhotplug-dave/arch/sparc/Kconfig     |    2 ++
 memhotplug-dave/arch/sparc64/Kconfig   |    2 ++
 memhotplug-dave/arch/um/Kconfig        |    1 +
 memhotplug-dave/arch/v850/Kconfig      |    2 ++
 memhotplug-dave/arch/x86_64/Kconfig    |    4 +++-
 23 files changed, 66 insertions(+), 10 deletions(-)

diff -puN arch/alpha/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/alpha/Kconfig
--- memhotplug/arch/alpha/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/alpha/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -505,7 +505,7 @@ config NR_CPUS
 	depends on SMP
 	default "64"
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool "Discontiguous Memory Support (EXPERIMENTAL)"
 	depends on EXPERIMENTAL
 	help
@@ -514,6 +514,8 @@ config DISCONTIGMEM
 	  or have huge holes in the physical address space for other reasons.
 	  See <file:Documentation/vm/numa> for more.
 
+source "mm/Kconfig"
+
 config NUMA
 	bool "NUMA Support (EXPERIMENTAL)"
 	depends on DISCONTIGMEM
diff -puN arch/arm/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/arm/Kconfig
--- memhotplug/arch/arm/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/arm/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -289,7 +289,7 @@ config NR_CPUS
 	depends on SMP
 	default "4"
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool
 	depends on ARCH_EDB7211 || ARCH_SA1100 || (ARCH_LH7A40X && !LH7A40X_CONTIGMEM)
 	default y
@@ -299,6 +299,8 @@ config DISCONTIGMEM
 	  or have huge holes in the physical address space for other reasons.
 	  See <file:Documentation/vm/numa> for more.
 
+source "mm/Kconfig"
+
 # Now handle the bus types
 config PCI
 	bool "PCI support" if ARCH_INTEGRATOR_AP
diff -puN arch/arm26/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/arm26/Kconfig
--- memhotplug/arch/arm26/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/arm26/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -175,6 +175,8 @@ config CMDLINE
 	  time by entering them here. As a minimum, you should specify the
 	  memory size and the root device (e.g., mem=64M root=/dev/nfs).
 
+source "mm/Kconfig"
+
 endmenu
 
 source "drivers/base/Kconfig"
diff -puN arch/cris/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/cris/Kconfig
--- memhotplug/arch/cris/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/cris/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -74,6 +74,8 @@ config PREEMPT
 	  Say Y here if you are building a kernel for a desktop, embedded
 	  or real-time system.  Say N if you are unsure.
 
+source mm/Kconfig
+
 endmenu
 
 menu "Hardware setup"
diff -puN arch/frv/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/frv/Kconfig
--- memhotplug/arch/frv/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/frv/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -74,6 +74,8 @@ config HIGHPTE
 	  with a lot of RAM, this can be wasteful of precious low memory.
 	  Setting this option will put user-space page tables in high memory.
 
+source "mm/Kconfig"
+
 choice
 	prompt "uClinux kernel load address"
 	depends on !MMU
diff -puN arch/h8300/Kconfig.cpu~A7-make-each-arch-use-mm-Kconfig arch/h8300/Kconfig.cpu
--- memhotplug/arch/h8300/Kconfig.cpu~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/h8300/Kconfig.cpu	2005-03-25 08:08:22.000000000 -0800
@@ -180,4 +180,7 @@ config CPU_H8S
 config PREEMPT
 	bool "Preemptible Kernel"
 	default n
+
+source "mm/Kconfig'
+
 endmenu
diff -puN arch/i386/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/i386/Kconfig
--- memhotplug/arch/i386/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/i386/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -767,7 +767,7 @@ comment "NUMA (NUMA-Q) requires SMP, 64G
 comment "NUMA (Summit) requires SMP, 64GB highmem support, ACPI"
 	depends on X86_SUMMIT && (!HIGHMEM64G || !ACPI)
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool
 	depends on NUMA
 	default y
@@ -792,6 +792,8 @@ config HAVE_ARCH_ALLOC_REMAP
 	depends on NUMA
 	default y
 
+source "mm/Kconfig"
+
 config HIGHPTE
 	bool "Allocate 3rd-level pagetables from highmem"
 	depends on HIGHMEM4G || HIGHMEM64G
diff -puN arch/ia64/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/ia64/Kconfig
--- memhotplug/arch/ia64/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/ia64/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -188,7 +188,7 @@ config HOLES_IN_ZONE
 	bool
 	default y if VIRTUAL_MEM_MAP
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool "Discontiguous memory support"
 	depends on (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB) && NUMA && VIRTUAL_MEM_MAP
 	default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA
@@ -272,6 +272,8 @@ config PREEMPT
           Say Y here if you are building a kernel for a desktop, embedded
           or real-time system.  Say N if you are unsure.
 
+source "mm/Kconfig"
+
 config HAVE_DEC_LOCK
 	bool
 	depends on (SMP || PREEMPT)
diff -puN arch/m32r/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/m32r/Kconfig
--- memhotplug/arch/m32r/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/m32r/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -167,11 +167,13 @@ config NOHIGHMEM
 	bool
 	default y
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool "Internal RAM Support"
 	depends on CHIP_M32700 || CHIP_M32102 || CHIP_VDEC2 || CHIP_OPSP
 	default y
 
+source "mm/Kconfig"
+
 config IRAM_START
 	hex "Internal memory start address (hex)"
 	default "00f00000"
diff -puN arch/m68k/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/m68k/Kconfig
--- memhotplug/arch/m68k/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/m68k/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -357,6 +357,8 @@ config 060_WRITETHROUGH
 	  is hardwired on.  The 53c710 SCSI driver is known to suffer from
 	  this problem.
 
+source "mm/Kconfig"
+
 endmenu
 
 menu "General setup"
diff -puN arch/m68knommu/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/m68knommu/Kconfig
--- memhotplug/arch/m68knommu/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/m68knommu/Kconfig	2005-03-25 08:08:22.000000000 -0800
@@ -532,6 +532,8 @@ config ROMKERNEL
 
 endchoice
 
+source "mm/Kconfig"
+
 endmenu
 
 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
diff -puN arch/mips/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/mips/Kconfig
--- memhotplug/arch/mips/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/mips/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -492,7 +492,7 @@ config SGI_SN0_N_MODE
 	  which allows for more memory.  Your system is most probably
 	  running in M-Mode, so you should say N here.
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool
 	default y if SGI_IP27
 	help
@@ -501,6 +501,10 @@ config DISCONTIGMEM
 	  or have huge holes in the physical address space for other reasons.
 	  See <file:Documentation/vm/numa> for more.
 
+config ARCH_FLATMEM_DISABLE
+	def_bool y
+	depends on ARCH_DISCONTIGMEM_ENABLE
+
 config NUMA
 	bool "NUMA Support"
 	depends on SGI_IP27
diff -puN arch/parisc/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/parisc/Kconfig
--- memhotplug/arch/parisc/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/parisc/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -144,7 +144,7 @@ config HOTPLUG_CPU
 	default y if SMP
 	select HOTPLUG
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool "Discontiguous memory support (EXPERIMENTAL)"
 	depends on EXPERIMENTAL
 	help
@@ -153,6 +153,12 @@ config DISCONTIGMEM
 	  or have huge holes in the physical address space for other reasons.
 	  See <file:Documentation/vm/numa> for more.
 
+config ARCH_FLATMEM_DISABLE
+	def_bool y
+	depends on ARCH_DISCONTIGMEM_ENABLE
+
+source "mm/Kconfig"
+
 config PREEMPT
 	bool
 #	bool "Preemptible Kernel"
diff -puN arch/ppc/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/ppc/Kconfig
--- memhotplug/arch/ppc/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/ppc/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -893,6 +893,8 @@ config PREEMPT
 config HIGHMEM
 	bool "High memory support"
 
+source "mm/Kconfig"
+
 source "fs/Kconfig.binfmt"
 
 config PROC_DEVICETREE
diff -puN arch/ppc64/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/ppc64/Kconfig
--- memhotplug/arch/ppc64/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/ppc64/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -198,10 +198,12 @@ config HMT
 	  This option enables hardware multithreading on RS64 cpus.
 	  pSeries systems p620 and p660 have such a cpu type.
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool "Discontiguous Memory Support"
 	depends on SMP && PPC_PSERIES
 
+source "mm/Kconfig"
+
 config NUMA
 	bool "NUMA support"
 	depends on DISCONTIGMEM
diff -puN arch/s390/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/s390/Kconfig
--- memhotplug/arch/s390/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/s390/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -226,6 +226,8 @@ config WARN_STACK_SIZE
 	  This allows you to specify the maximum frame size a function may
 	  have without the compiler complaining about it.
 
+source "mm/Kconfig"
+
 comment "I/O subsystem configuration"
 
 config MACHCHK_WARNING
diff -puN arch/sh/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/sh/Kconfig
--- memhotplug/arch/sh/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/sh/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -486,7 +486,7 @@ config CPU_SUBTYPE_ST40
        depends on CPU_SUBTYPE_ST40STB1 || CPU_SUBTYPE_ST40GX1
        default y
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
 	bool
 	depends on SH_HP690
 	default y
@@ -496,6 +496,12 @@ config DISCONTIGMEM
 	  or have huge holes in the physical address space for other reasons.
 	  See <file:Documentation/vm/numa> for more.
 
+config ARCH_FLATMEM_DISABLE
+	def_bool y
+	depends on ARCH_DISCONTIGMEM_ENABLE
+
+source "mm/Kconfig"
+
 config ZERO_PAGE_OFFSET
 	hex "Zero page offset"
 	default "0x00001000" if !(SH_MPC1211 || SH_SH03)
diff -puN arch/sh64/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/sh64/Kconfig
--- memhotplug/arch/sh64/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/sh64/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -217,6 +217,8 @@ config PREEMPT
 	bool "Preemptible Kernel (EXPERIMENTAL)"
 	depends on EXPERIMENTAL
 
+source "mm/Kconfig"
+
 endmenu
 
 menu "Bus options (PCI, PCMCIA, EISA, MCA, ISA)"
diff -puN arch/sparc/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/sparc/Kconfig
--- memhotplug/arch/sparc/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/sparc/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -291,6 +291,8 @@ config PRINTER
 	  If you have more than 8 printers, you need to increase the LP_NO
 	  macro in lp.c and the PARPORT_MAX macro in parport.h.
 
+source "mm/Kconfig"
+
 endmenu
 
 source "drivers/base/Kconfig"
diff -puN arch/sparc64/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/sparc64/Kconfig
--- memhotplug/arch/sparc64/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/sparc64/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -462,6 +462,8 @@ config CMDLINE
 
 	  NOTE: This option WILL override the PROM bootargs setting!
 
+source "mm/Kconfig"
+
 endmenu
 
 source "drivers/base/Kconfig"
diff -puN arch/um/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/um/Kconfig
--- memhotplug/arch/um/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/um/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -69,6 +69,7 @@ config MODE_SKAS
 	option will shrink the UML binary slightly.
 
 source "arch/um/Kconfig_arch"
+source "mm/Kconfig"
 
 config LD_SCRIPT_STATIC
 	bool
diff -puN arch/v850/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/v850/Kconfig
--- memhotplug/arch/v850/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/v850/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -218,6 +218,8 @@ menu "Processor type and features"
 	     a lot of RAM, and you need to able to allocate very large
 	     contiguous chunks. If unsure, say N.
 
+source "mm/Kconfig"
+
 endmenu
 
 
diff -puN arch/x86_64/Kconfig~A7-make-each-arch-use-mm-Kconfig arch/x86_64/Kconfig
--- memhotplug/arch/x86_64/Kconfig~A7-make-each-arch-use-mm-Kconfig	2005-03-25 08:08:22.000000000 -0800
+++ memhotplug-dave/arch/x86_64/Kconfig	2005-03-25 08:08:23.000000000 -0800
@@ -282,7 +282,7 @@ config NUMA_EMU
 	  into virtual nodes when booted with "numa=fake=N", where N is the
 	  number of nodes. This is only useful for debugging.
 
-config DISCONTIGMEM
+config ARCH_DISCONTIGMEM_ENABLE
        bool
        depends on NUMA
        default y
@@ -291,6 +291,8 @@ config NUMA
        bool
        default n
 
+source "mm/Kconfig"
+
 config HAVE_DEC_LOCK
 	bool
 	depends on SMP
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux