tunnels: fix netns vs proto registration ordering
[safe/jmp/linux-2.6] / mm / Kconfig
index 5585f12..17b8947 100644 (file)
@@ -67,7 +67,7 @@ config DISCONTIGMEM
 
 config SPARSEMEM
        def_bool y
-       depends on SPARSEMEM_MANUAL
+       depends on (!SELECT_MEMORY_MODEL && ARCH_SPARSEMEM_ENABLE) || SPARSEMEM_MANUAL
 
 config FLATMEM
        def_bool y
@@ -128,11 +128,8 @@ config SPARSEMEM_VMEMMAP
 config MEMORY_HOTPLUG
        bool "Allow for memory hot-add"
        depends on SPARSEMEM || X86_64_ACPI_NUMA
-       depends on HOTPLUG && !HIBERNATION && ARCH_ENABLE_MEMORY_HOTPLUG
-       depends on (IA64 || X86 || PPC64 || SUPERH || S390)
-
-comment "Memory hotplug is currently incompatible with Software Suspend"
-       depends on SPARSEMEM && HOTPLUG && HIBERNATION
+       depends on HOTPLUG && ARCH_ENABLE_MEMORY_HOTPLUG
+       depends on (IA64 || X86 || PPC_BOOK3S_64 || SUPERH || S390)
 
 config MEMORY_HOTPLUG_SPARSE
        def_bool y
@@ -153,7 +150,7 @@ config MEMORY_HOTREMOVE
 #
 config PAGEFLAGS_EXTENDED
        def_bool y
-       depends on 64BIT || SPARSEMEM_VMEMMAP || !NUMA || !SPARSEMEM
+       depends on 64BIT || SPARSEMEM_VMEMMAP || !SPARSEMEM
 
 # Heavily threaded applications may benefit from splitting the mm-wide
 # page_table_lock, so that faults on different parts of the user address
@@ -161,11 +158,13 @@ config PAGEFLAGS_EXTENDED
 # Default to 4 for wider testing, though 8 might be more appropriate.
 # ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
 # PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
+# DEBUG_SPINLOCK and DEBUG_LOCK_ALLOC spinlock_t also enlarge struct page.
 #
 config SPLIT_PTLOCK_CPUS
        int
-       default "4096" if ARM && !CPU_CACHE_VIPT
-       default "4096" if PARISC && !PA20
+       default "999999" if ARM && !CPU_CACHE_VIPT
+       default "999999" if PARISC && !PA20
+       default "999999" if DEBUG_SPINLOCK || DEBUG_LOCK_ALLOC
        default "4"
 
 #
@@ -181,11 +180,8 @@ config MIGRATION
          example on NUMA systems to put pages nearer to the processors accessing
          the page.
 
-config RESOURCES_64BIT
-       bool "64 bit Memory and IO resources (EXPERIMENTAL)" if (!64BIT && EXPERIMENTAL)
-       default 64BIT
-       help
-         This option allows memory and IO resources to be 64 bit.
+config PHYS_ADDR_T_64BIT
+       def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
 
 config ZONE_DMA_FLAG
        int
@@ -208,3 +204,82 @@ config VIRT_TO_BUS
 
 config MMU_NOTIFIER
        bool
+
+config KSM
+       bool "Enable KSM for page merging"
+       depends on MMU
+       help
+         Enable Kernel Samepage Merging: KSM periodically scans those areas
+         of an application's address space that an app has advised may be
+         mergeable.  When it finds pages of identical content, it replaces
+         the many instances by a single page with that content, so
+         saving memory until one or another app needs to modify the content.
+         Recommended for use with KVM, or with other duplicative applications.
+         See Documentation/vm/ksm.txt for more information: KSM is inactive
+         until a program has madvised that an area is MADV_MERGEABLE, and
+         root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
+
+config DEFAULT_MMAP_MIN_ADDR
+        int "Low address space to protect from user allocation"
+       depends on MMU
+        default 4096
+        help
+         This is the portion of low virtual memory which should be protected
+         from userspace allocation.  Keeping a user from writing to low pages
+         can help reduce the impact of kernel NULL pointer bugs.
+
+         For most ia64, ppc64 and x86 users with lots of address space
+         a value of 65536 is reasonable and should cause no problems.
+         On arm and other archs it should not be higher than 32768.
+         Programs which use vm86 functionality or have some need to map
+         this low address space will need CAP_SYS_RAWIO or disable this
+         protection by setting the value to 0.
+
+         This value can be changed after boot using the
+         /proc/sys/vm/mmap_min_addr tunable.
+
+config ARCH_SUPPORTS_MEMORY_FAILURE
+       bool
+
+config MEMORY_FAILURE
+       depends on MMU
+       depends on ARCH_SUPPORTS_MEMORY_FAILURE
+       bool "Enable recovery from hardware memory errors"
+       help
+         Enables code to recover from some memory failures on systems
+         with MCA recovery. This allows a system to continue running
+         even when some of its memory has uncorrected errors. This requires
+         special hardware support and typically ECC memory.
+
+config HWPOISON_INJECT
+       tristate "HWPoison pages injector"
+       depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
+       select PROC_PAGE_MONITOR
+
+config NOMMU_INITIAL_TRIM_EXCESS
+       int "Turn on mmap() excess space trimming before booting"
+       depends on !MMU
+       default 1
+       help
+         The NOMMU mmap() frequently needs to allocate large contiguous chunks
+         of memory on which to store mappings, but it can only ask the system
+         allocator for chunks in 2^N*PAGE_SIZE amounts - which is frequently
+         more than it requires.  To deal with this, mmap() is able to trim off
+         the excess and return it to the allocator.
+
+         If trimming is enabled, the excess is trimmed off and returned to the
+         system allocator, which can cause extra fragmentation, particularly
+         if there are a lot of transient processes.
+
+         If trimming is disabled, the excess is kept, but not used, which for
+         long-term mappings means that the space is wasted.
+
+         Trimming can be dynamically controlled through a sysctl option
+         (/proc/sys/vm/nr_trim_pages) which specifies the minimum number of
+         excess pages there must be before trimming should occur, or zero if
+         no trimming is to occur.
+
+         This option specifies the initial value of this option.  The default
+         of 1 says that all excess pages should be trimmed.
+
+         See Documentation/nommu-mmap.txt for more information.