ia64/xen-unstable

changeset 14438:ba83d33c961b

Revert CONFIG_SPLIT_PTLOCK_CPUS change of 14209:1061c7bff38f3e6e66fee96c407977ad55b3f2f2.

Jan Beulich points out that it's not safe against mm pinning and unpinning.

Signed-off-by: Keir Fraser <keir@xensource.com>
author kfraser@localhost.localdomain
date Fri Mar 16 15:18:33 2007 +0000 (2007-03-16)
parents a20e3ad50ae8
children 3a186e94f613
files linux-2.6-xen-sparse/mm/Kconfig
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/linux-2.6-xen-sparse/mm/Kconfig	Fri Mar 16 15:18:33 2007 +0000
     1.3 @@ -0,0 +1,157 @@
     1.4 +config SELECT_MEMORY_MODEL
     1.5 +	def_bool y
     1.6 +	depends on EXPERIMENTAL || ARCH_SELECT_MEMORY_MODEL
     1.7 +
     1.8 +choice
     1.9 +	prompt "Memory model"
    1.10 +	depends on SELECT_MEMORY_MODEL
    1.11 +	default DISCONTIGMEM_MANUAL if ARCH_DISCONTIGMEM_DEFAULT
    1.12 +	default SPARSEMEM_MANUAL if ARCH_SPARSEMEM_DEFAULT
    1.13 +	default FLATMEM_MANUAL
    1.14 +
    1.15 +config FLATMEM_MANUAL
    1.16 +	bool "Flat Memory"
    1.17 +	depends on !(ARCH_DISCONTIGMEM_ENABLE || ARCH_SPARSEMEM_ENABLE) || ARCH_FLATMEM_ENABLE
    1.18 +	help
    1.19 +	  This option allows you to change some of the ways that
    1.20 +	  Linux manages its memory internally.  Most users will
    1.21 +	  only have one option here: FLATMEM.  This is normal
    1.22 +	  and a correct option.
    1.23 +
    1.24 +	  Some users of more advanced features like NUMA and
    1.25 +	  memory hotplug may have different options here.
    1.26 +	  DISCONTIGMEM is an more mature, better tested system,
    1.27 +	  but is incompatible with memory hotplug and may suffer
    1.28 +	  decreased performance over SPARSEMEM.  If unsure between
    1.29 +	  "Sparse Memory" and "Discontiguous Memory", choose
    1.30 +	  "Discontiguous Memory".
    1.31 +
    1.32 +	  If unsure, choose this option (Flat Memory) over any other.
    1.33 +
    1.34 +config DISCONTIGMEM_MANUAL
    1.35 +	bool "Discontiguous Memory"
    1.36 +	depends on ARCH_DISCONTIGMEM_ENABLE
    1.37 +	help
    1.38 +	  This option provides enhanced support for discontiguous
    1.39 +	  memory systems, over FLATMEM.  These systems have holes
    1.40 +	  in their physical address spaces, and this option provides
    1.41 +	  more efficient handling of these holes.  However, the vast
    1.42 +	  majority of hardware has quite flat address spaces, and
    1.43 +	  can have degraded performance from extra overhead that
    1.44 +	  this option imposes.
    1.45 +
    1.46 +	  Many NUMA configurations will have this as the only option.
    1.47 +
    1.48 +	  If unsure, choose "Flat Memory" over this option.
    1.49 +
    1.50 +config SPARSEMEM_MANUAL
    1.51 +	bool "Sparse Memory"
    1.52 +	depends on ARCH_SPARSEMEM_ENABLE
    1.53 +	help
    1.54 +	  This will be the only option for some systems, including
    1.55 +	  memory hotplug systems.  This is normal.
    1.56 +
    1.57 +	  For many other systems, this will be an alternative to
    1.58 +	  "Discontiguous Memory".  This option provides some potential
    1.59 +	  performance benefits, along with decreased code complexity,
    1.60 +	  but it is newer, and more experimental.
    1.61 +
    1.62 +	  If unsure, choose "Discontiguous Memory" or "Flat Memory"
    1.63 +	  over this option.
    1.64 +
    1.65 +endchoice
    1.66 +
    1.67 +config DISCONTIGMEM
    1.68 +	def_bool y
    1.69 +	depends on (!SELECT_MEMORY_MODEL && ARCH_DISCONTIGMEM_ENABLE) || DISCONTIGMEM_MANUAL
    1.70 +
    1.71 +config SPARSEMEM
    1.72 +	def_bool y
    1.73 +	depends on SPARSEMEM_MANUAL
    1.74 +
    1.75 +config FLATMEM
    1.76 +	def_bool y
    1.77 +	depends on (!DISCONTIGMEM && !SPARSEMEM) || FLATMEM_MANUAL
    1.78 +
    1.79 +config FLAT_NODE_MEM_MAP
    1.80 +	def_bool y
    1.81 +	depends on !SPARSEMEM
    1.82 +
    1.83 +#
    1.84 +# Both the NUMA code and DISCONTIGMEM use arrays of pg_data_t's
    1.85 +# to represent different areas of memory.  This variable allows
    1.86 +# those dependencies to exist individually.
    1.87 +#
    1.88 +config NEED_MULTIPLE_NODES
    1.89 +	def_bool y
    1.90 +	depends on DISCONTIGMEM || NUMA
    1.91 +
    1.92 +config HAVE_MEMORY_PRESENT
    1.93 +	def_bool y
    1.94 +	depends on ARCH_HAVE_MEMORY_PRESENT || SPARSEMEM
    1.95 +
    1.96 +#
    1.97 +# SPARSEMEM_EXTREME (which is the default) does some bootmem
    1.98 +# allocations when memory_present() is called.  If this can not
    1.99 +# be done on your architecture, select this option.  However,
   1.100 +# statically allocating the mem_section[] array can potentially
   1.101 +# consume vast quantities of .bss, so be careful.
   1.102 +#
   1.103 +# This option will also potentially produce smaller runtime code
   1.104 +# with gcc 3.4 and later.
   1.105 +#
   1.106 +config SPARSEMEM_STATIC
   1.107 +	def_bool n
   1.108 +
   1.109 +#
   1.110 +# Architectecture platforms which require a two level mem_section in SPARSEMEM
   1.111 +# must select this option. This is usually for architecture platforms with
   1.112 +# an extremely sparse physical address space.
   1.113 +#
   1.114 +config SPARSEMEM_EXTREME
   1.115 +	def_bool y
   1.116 +	depends on SPARSEMEM && !SPARSEMEM_STATIC
   1.117 +
   1.118 +# eventually, we can have this option just 'select SPARSEMEM'
   1.119 +config MEMORY_HOTPLUG
   1.120 +	bool "Allow for memory hot-add"
   1.121 +	depends on SPARSEMEM && HOTPLUG && !SOFTWARE_SUSPEND && ARCH_ENABLE_MEMORY_HOTPLUG
   1.122 +	depends on (IA64 || X86 || PPC64)
   1.123 +
   1.124 +comment "Memory hotplug is currently incompatible with Software Suspend"
   1.125 +	depends on SPARSEMEM && HOTPLUG && SOFTWARE_SUSPEND
   1.126 +
   1.127 +# Heavily threaded applications may benefit from splitting the mm-wide
   1.128 +# page_table_lock, so that faults on different parts of the user address
   1.129 +# space can be handled with less contention: split it at this NR_CPUS.
   1.130 +# Default to 4 for wider testing, though 8 might be more appropriate.
   1.131 +# ARM's adjust_pte (unused if VIPT) depends on mm-wide page_table_lock.
   1.132 +# PA-RISC 7xxx's spinlock_t would enlarge struct page from 32 to 44 bytes.
   1.133 +# XEN on x86 architecture uses the mapping field on pagetable pages to store a
   1.134 +# pointer to the destructor. This conflicts with pte_lock_deinit().
   1.135 +#
   1.136 +config SPLIT_PTLOCK_CPUS
   1.137 +	int
   1.138 +	default "4096" if ARM && !CPU_CACHE_VIPT
   1.139 +	default "4096" if PARISC && !PA20
   1.140 +	default "4096" if X86_XEN || X86_64_XEN
   1.141 +	default "4"
   1.142 +
   1.143 +#
   1.144 +# support for page migration
   1.145 +#
   1.146 +config MIGRATION
   1.147 +	bool "Page migration"
   1.148 +	def_bool y
   1.149 +	depends on NUMA
   1.150 +	help
   1.151 +	  Allows the migration of the physical location of pages of processes
   1.152 +	  while the virtual addresses are not changed. This is useful for
   1.153 +	  example on NUMA systems to put pages nearer to the processors accessing
   1.154 +	  the page.
   1.155 +
   1.156 +config RESOURCES_64BIT
   1.157 +	bool "64 bit Memory and IO resources (EXPERIMENTAL)" if (!64BIT && EXPERIMENTAL)
   1.158 +	default 64BIT
   1.159 +	help
   1.160 +	  This option allows memory and IO resources to be 64 bit.