Просмотр исходного кода

x86: modify Kconfig to allow up to 4096 cpus

  * Increase the limit of NR_CPUS to 4096 and introduce a boolean
    called "MAXSMP" which when set (e.g. "allyesconfig"), will set
    NR_CPUS = 4096 and NODES_SHIFT = 9 (512).

  * Changed max setting for NODES_SHIFT from 15 to 9 to accurately
    reflect the real limit.

Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Mike Travis 17 лет назад
Родитель
Сommit
1184dc2ffe
1 измененных файлов с 32 добавлено и 5 удалено
  1. 32 5
      arch/x86/Kconfig

+ 32 - 5
arch/x86/Kconfig

@@ -561,20 +561,35 @@ config SWIOTLB
 
 
 config IOMMU_HELPER
 config IOMMU_HELPER
 	def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB)
 	def_bool (CALGARY_IOMMU || GART_IOMMU || SWIOTLB)
+config MAXSMP
+	bool "Configure Maximum number of SMP Processors and NUMA Nodes"
+	depends on X86_64 && SMP
+	default n
+	help
+	  Configure maximum number of CPUS and NUMA Nodes for this architecture.
+	  If unsure, say N.
 
 
+if MAXSMP
 config NR_CPUS
 config NR_CPUS
-	int "Maximum number of CPUs (2-255)"
-	range 2 255
+	int
+	default "4096"
+endif
+
+if !MAXSMP
+config NR_CPUS
+	int "Maximum number of CPUs (2-4096)"
+	range 2 4096
 	depends on SMP
 	depends on SMP
 	default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
 	default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000
 	default "8"
 	default "8"
 	help
 	help
 	  This allows you to specify the maximum number of CPUs which this
 	  This allows you to specify the maximum number of CPUs which this
-	  kernel will support.  The maximum supported value is 255 and the
+	  kernel will support.  The maximum supported value is 4096 and the
 	  minimum value which makes sense is 2.
 	  minimum value which makes sense is 2.
 
 
 	  This is purely to save memory - each supported CPU adds
 	  This is purely to save memory - each supported CPU adds
 	  approximately eight kilobytes to the kernel image.
 	  approximately eight kilobytes to the kernel image.
+endif
 
 
 config SCHED_SMT
 config SCHED_SMT
 	bool "SMT (Hyperthreading) scheduler support"
 	bool "SMT (Hyperthreading) scheduler support"
@@ -965,13 +980,25 @@ config NUMA_EMU
 	  into virtual nodes when booted with "numa=fake=N", where N is the
 	  into virtual nodes when booted with "numa=fake=N", where N is the
 	  number of nodes. This is only useful for debugging.
 	  number of nodes. This is only useful for debugging.
 
 
+if MAXSMP
+
+config NODES_SHIFT
+	int
+	default "9"
+endif
+
+if !MAXSMP
 config NODES_SHIFT
 config NODES_SHIFT
-	int "Max num nodes shift(1-9)"
-	range 1 9  if X86_64
+	int "Maximum NUMA Nodes (as a power of 2)"
+	range 1 9   if X86_64
 	default "6" if X86_64
 	default "6" if X86_64
 	default "4" if X86_NUMAQ
 	default "4" if X86_NUMAQ
 	default "3"
 	default "3"
 	depends on NEED_MULTIPLE_NODES
 	depends on NEED_MULTIPLE_NODES
+	help
+	  Specify the maximum number of NUMA Nodes available on the target
+	  system.  Increases memory reserved to accomodate various tables.
+endif
 
 
 config HAVE_ARCH_BOOTMEM_NODE
 config HAVE_ARCH_BOOTMEM_NODE
 	def_bool y
 	def_bool y