From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1765065AbYDZAQw (ORCPT ); Fri, 25 Apr 2008 20:16:52 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1759200AbYDZAPw (ORCPT ); Fri, 25 Apr 2008 20:15:52 -0400 Received: from netops-testserver-3-out.sgi.com ([192.48.171.28]:55379 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757323AbYDZAPu (ORCPT ); Fri, 25 Apr 2008 20:15:50 -0400 Message-Id: <20080426001549.014201000@polaris-admin.engr.sgi.com> References: <20080426001548.829332000@polaris-admin.engr.sgi.com> User-Agent: quilt/0.46-1 Date: Fri, 25 Apr 2008 17:15:49 -0700 From: Mike Travis To: Ingo Molnar Cc: Andrew Morton , Thomas Gleixner , "H. Peter Anvin" , linux-kernel@vger.kernel.org Subject: [PATCH 01/11] x86: Modify Kconfig to allow up to 4096 cpus Content-Disposition: inline; filename=MAXSMP-Kconfig Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * 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. For inclusion into sched-devel/latest tree. Based on: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git + sched-devel/latest .../mingo/linux-2.6-sched-devel.git Signed-off-by: Mike Travis --- arch/x86/Kconfig | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) --- linux-2.6.sched.orig/arch/x86/Kconfig +++ linux-2.6.sched/arch/x86/Kconfig @@ -513,20 +513,35 @@ config SWIOTLB access 32-bits of memory can be used on systems with more than 3 GB of memory. If unsure, say Y. +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 + int + default "4096" +endif +if !MAXSMP config NR_CPUS - int "Maximum number of CPUs (2-255)" - range 2 255 + int "Maximum number of CPUs (2-4096)" + range 2 4096 depends on SMP default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 default "8" help 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. This is purely to save memory - each supported CPU adds approximately eight kilobytes to the kernel image. +endif config SCHED_SMT bool "SMT (Hyperthreading) scheduler support" @@ -917,13 +932,25 @@ 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. +if MAXSMP + config NODES_SHIFT - int "Max num nodes shift(1-15)" - range 1 15 if X86_64 + int + default "9" +endif + +if !MAXSMP +config NODES_SHIFT + int "Maximum NUMA Nodes (as a power of 2)" + range 1 9 if X86_64 default "6" if X86_64 default "4" if X86_NUMAQ default "3" 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 def_bool y --