public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "J.A. Magallon" <jamagallon@able.es>
To: Lista Linux-Kernel <linux-kernel@vger.kernel.org>
Cc: Marcelo Tosatti <marcelo@conectiva.com.br>
Subject: [RFC][PATCH] CONFIG_NR_CPUS for 2.4.21
Date: Thu, 19 Jun 2003 00:23:36 +0200	[thread overview]
Message-ID: <20030618222336.GC3768@werewolf.able.es> (raw)

Hi all...

This adds support for defining max CPU number at compile time. It is safe
for old .configs, because it defaults to current fixed max values.

Could you consider for applying ?

TIA

--- linux/Documentation/Configure.help.orig	2002-06-06 15:48:03.000000000 +0200
+++ linux/Documentation/Configure.help	2002-06-06 15:47:15.000000000 +0200
@@ -137,6 +137,16 @@
 
   If you don't know what to do here, say N.
 
+Maximum number of CPUs
+CONFIG_NR_CPUS
+  This allows you to specify the maximum number of CPUs which this
+  kernel will support.  The maximum supported value is 32 for 32-bit
+  architectures and 64 for the 64-bits ones. The mimimum value which
+  makes sense is 2.
+
+  This is purely to save memory - each supported CPU adds
+  approximately eight kilobytes to the kernel image.
+
 Intel or compatible 80x86 processor
 CONFIG_X86
   This is Linux's home port.  Linux was originally native to the Intel
--- linux/include/linux/threads.h.orig	2002-06-06 15:44:27.000000000 +0200
+++ linux/include/linux/threads.h	2002-06-06 15:45:40.000000000 +0200
@@ -9,9 +9,9 @@
  */
  
 #ifdef CONFIG_SMP
-#define NR_CPUS	32		/* Max processors that can be running in SMP */
+#define NR_CPUS	CONFIG_NR_CPUS
 #else
-#define NR_CPUS 1
+#define NR_CPUS	1
 #endif

 #define MIN_THREADS_LEFT_FOR_ROOT 4
--- linux/arch/i386/kernel/smpboot.c.orig	2002-06-06 15:48:19.000000000 +0200
+++ linux/arch/i386/kernel/smpboot.c	2002-06-06 15:49:14.000000000 +0200
@@ -51,7 +51,7 @@
 static int smp_b_stepping;
 
 /* Setup configured maximum number of CPUs to activate */
-static int max_cpus = -1;
+static int max_cpus = NR_CPUS;
 
 /* Total count of live CPUs */
 int smp_num_cpus = 1;
@@ -1116,7 +1116,7 @@
 
 		if (!(phys_cpu_present_map & (1ul << bit)))
 			continue;
-		if ((max_cpus >= 0) && (max_cpus <= cpucount+1))
+		if (max_cpus <= cpucount+1)
 			continue;
 
 		do_boot_cpu(apicid);
--- linux/arch/i386/config.in.orig	2002-06-06 15:43:12.000000000 +0200
+++ linux/arch/i386/config.in	2002-06-06 15:43:37.000000000 +0200
@@ -231,6 +231,7 @@
       define_bool CONFIG_X86_IO_APIC y
    fi
 else
+   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
    bool 'Multi-node NUMA system support' CONFIG_X86_NUMA
    if [ "$CONFIG_X86_NUMA" = "y" ]; then
       #Platform Choices
--- linux/arch/i386/defconfig	Wed Jun 19 17:32:33 2002
+++ linux/arch/i386/defconfig	Wed Jun 19 17:26:35 2002
@@ -64,6 +64,7 @@
 CONFIG_SMP=y
 # CONFIG_MULTIQUAD is not set
 CONFIG_HAVE_DEC_LOCK=y
+CONFIG_NR_CPUS=32
 
 #
 # General setup
--- linux/arch/alpha/config.in	Wed Jun 19 17:31:21 2002
+++ linux/arch/alpha/config.in	Wed Jun 19 17:26:35 2002
@@ -257,6 +257,7 @@
 
 if [ "$CONFIG_SMP" = "y" ]; then
    define_bool CONFIG_HAVE_DEC_LOCK y
+   int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
 fi
 
 if [ "$CONFIG_ALPHA_GENERIC" = "y" -o "$CONFIG_ALPHA_SRM" = "y" ]; then
--- linux/arch/ia64/config.in	Wed Jun 19 17:32:34 2002
+++ linux/arch/ia64/config.in	Wed Jun 19 17:26:35 2002
@@ -87,6 +87,10 @@
 define_bool CONFIG_KCORE_ELF y	# On IA-64, we always want an ELF /proc/kcore.
 
 bool 'SMP support' CONFIG_SMP
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
+fi
+
 tristate 'Support running of Linux/x86 binaries' CONFIG_IA32_SUPPORT
 bool 'Performance monitor support' CONFIG_PERFMON
 tristate '/proc/pal support' CONFIG_IA64_PALINFO
--- linux/arch/ia64/defconfig	Wed Jun 19 17:31:23 2002
+++ linux/arch/ia64/defconfig	Wed Jun 19 17:26:35 2002
@@ -42,6 +42,7 @@
 CONFIG_PM=y
 CONFIG_KCORE_ELF=y
 CONFIG_SMP=y
+CONFIG_NR_CPUS=64
 CONFIG_IA32_SUPPORT=y
 CONFIG_PERFMON=y
 CONFIG_IA64_PALINFO=y
--- linux/arch/mips/config-shared.in	Wed Jun 19 17:32:34 2002
+++ linux/arch/mips/config-shared.in	Wed Jun 19 17:26:35 2002
@@ -797,6 +797,8 @@
 bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
 if [ "$CONFIG_SMP" != "y" ]; then
    bool 'Run uncached' CONFIG_MIPS_UNCACHED
+else
+   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
 fi
 endmenu
 
--- linux/arch/mips64/defconfig	Wed Jun 19 17:31:25 2002
+++ linux/arch/mips64/defconfig	Wed Jun 19 17:26:35 2002
@@ -53,6 +53,7 @@
 # CONFIG_REPLICATE_KTEXT is not set
 # CONFIG_REPLICATE_EXHANDLERS is not set
 CONFIG_SMP=y
+CONFIG_NR_CPUS=64
 # CONFIG_SGI_IP32 is not set
 # CONFIG_SIBYTE_SB1xxx_SOC is not set
 # CONFIG_SNI_RM200_PCI is not set
--- linux/arch/parisc/config.in	Wed Jun 19 17:32:34 2002
+++ linux/arch/parisc/config.in	Wed Jun 19 17:26:35 2002
@@ -45,6 +45,10 @@
 comment 'General options'
 
 bool 'Symmetric multi-processing support' CONFIG_SMP
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
+fi
+
 bool 'Chassis LCD and LED support' CONFIG_CHASSIS_LCD_LED
 
 bool 'Kernel Debugger support' CONFIG_KWDB
--- linux/arch/ppc/config.in	Wed Jun 19 17:31:16 2002
+++ linux/arch/ppc/config.in	Wed Jun 19 17:26:35 2002
@@ -122,6 +122,7 @@
 bool 'Symmetric multi-processing support' CONFIG_SMP
 if [ "$CONFIG_SMP" = "y" ]; then
   bool '  Distribute interrupts on all CPUs by default' CONFIG_IRQ_ALL_CPUS
+  int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
 fi

 if [ "$CONFIG_6xx" = "y" -a "$CONFIG_8260" = "n" ];then
--- linux/arch/ppc64/config.in	Wed Jun 19 17:31:23 2002
+++ linux/arch/ppc64/config.in	Wed Jun 19 17:26:35 2002
@@ -29,6 +29,7 @@
 bool 'Symmetric multi-processing support' CONFIG_SMP
 if [ "$CONFIG_SMP" = "y" ]; then
   bool '  Distribute interrupts on all CPUs by default' CONFIG_IRQ_ALL_CPUS
+  int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
   if [ "$CONFIG_PPC_PSERIES" = "y" ]; then
     bool '  Hardware multithreading' CONFIG_HMT
   fi
--- linux/arch/ppc64/defconfig	Wed Jun 19 17:31:23 2002
+++ linux/arch/ppc64/defconfig	Wed Jun 19 17:26:35 2002
@@ -22,6 +22,7 @@
 CONFIG_PPC_PSERIES=y
 # CONFIG_PPC_ISERIES is not set
 CONFIG_SMP=y
+CONFIG_NR_CPUS=64
 CONFIG_IRQ_ALL_CPUS=y
 # CONFIG_HMT is not set
 # CONFIG_MSCHUNKS is not set
--- linux/arch/s390/config.in	Wed Jun 19 17:31:26 2002
+++ linux/arch/s390/config.in	Wed Jun 19 17:26:35 2002
@@ -32,6 +32,9 @@
 comment 'Processor type and features'
 bool 'Symmetric multi-processing support' CONFIG_SMP
 bool 'IEEE FPU emulation' CONFIG_MATHEMU
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
+fi
 endmenu
 
 mainmenu_option next_comment
--- linux/arch/s390/defconfig	Wed Jun 19 17:31:26 2002
+++ linux/arch/s390/defconfig	Wed Jun 19 17:26:35 2002
@@ -27,6 +27,7 @@
 #
 CONFIG_SMP=y
 CONFIG_MATHEMU=y
+CONFIG_NR_CPUS=64
 
 #
 # General setup
--- linux/arch/s390x/config.in	Wed Jun 19 17:31:25 2002
+++ linux/arch/s390x/config.in	Wed Jun 19 17:26:35 2002
@@ -22,6 +22,9 @@
 mainmenu_option next_comment
 comment 'Processor type and features'
 bool 'Symmetric multi-processing support' CONFIG_SMP
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
+fi
 bool 'Kernel support for 31 bit emulation' CONFIG_S390_SUPPORT
 if [ "$CONFIG_S390_SUPPORT" = "y" ]; then
   tristate 'Kernel support for 31 bit ELF binaries' CONFIG_BINFMT_ELF32 
--- linux/arch/s390x/defconfig	Wed Jun 19 17:31:25 2002
+++ linux/arch/s390x/defconfig	Wed Jun 19 17:26:35 2002
@@ -21,6 +21,7 @@
 CONFIG_SMP=y
 CONFIG_S390_SUPPORT=y
 CONFIG_BINFMT_ELF32=y
+CONFIG_NR_CPUS=64
 
 #
 # Loadable module support
--- linux/arch/sparc/config.in	Wed Jun 19 17:31:21 2002
+++ linux/arch/sparc/config.in	Wed Jun 19 17:26:35 2002
@@ -29,6 +29,10 @@
 
 bool 'Symmetric multi-processing support (does not work on sun4/sun4c)' CONFIG_SMP
 
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-32)' CONFIG_NR_CPUS 32
+fi
+
 # Identify this as a Sparc32 build
 define_bool CONFIG_SPARC32 y
 
--- linux/arch/sparc64/config.in	Wed Jun 19 17:32:35 2002
+++ linux/arch/sparc64/config.in	Wed Jun 19 17:26:35 2002
@@ -28,6 +28,10 @@
 
 bool 'Symmetric multi-processing support' CONFIG_SMP
 
+if [ "$CONFIG_SMP" = "y" ]; then
+   int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
+fi
+
 # Identify this as a Sparc64 build
 define_bool CONFIG_SPARC64 y
 
--- linux/arch/sparc64/defconfig	Wed Jun 19 17:32:35 2002
+++ linux/arch/sparc64/defconfig	Wed Jun 19 17:26:35 2002
@@ -58,6 +58,7 @@
 CONFIG_BINFMT_MISC=m
 # CONFIG_SUNOS_EMUL is not set
 CONFIG_SOLARIS_EMUL=m
+CONFIG_NR_CPUS=64
 
 #
 # Parallel port support
--- linux/arch/x86_64/config.in	Wed Jun 19 17:31:25 2002
+++ linux/arch/x86_64/config.in	Wed Jun 19 17:29:25 2002
@@ -66,6 +66,7 @@
    define_bool CONFIG_X86_UP_IOAPIC y
 else
    define_bool CONFIG_HAVE_DEC_LOCK y
+   int  'Maximum number of CPUs (2-64)' CONFIG_NR_CPUS 64
 fi
 
 bool 'Machine check support' CONFIG_MCE
--- linux/arch/x86_64/defconfig	Wed Jun 19 17:31:25 2002
+++ linux/arch/x86_64/defconfig	Wed Jun 19 17:26:35 2002
@@ -41,6 +41,7 @@
 CONFIG_X86_LOCAL_APIC=y
 CONFIG_MTRR=y
 # CONFIG_SMP is not set
+CONFIG_NR_CPUS=64
 CONFIG_HPET_TIMER=y
 CONFIG_GART_IOMMU=y
 CONFIG_X86_UP_IOAPIC=y

-- 
J.A. Magallon <jamagallon@able.es>      \                 Software is like sex:
werewolf.able.es                         \           It's better when it's free
Mandrake Linux release 9.2 (Cooker) for i586
Linux 2.4.21-jam1 (gcc 3.3 (Mandrake Linux 9.2 3.3-1mdk))

             reply	other threads:[~2003-06-18 22:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-18 22:23 J.A. Magallon [this message]
2003-06-18 23:01 ` [RFC][PATCH] CONFIG_NR_CPUS for 2.4.21 J.A. Magallon
2003-06-19  1:04   ` Robert Love
2003-06-20 17:14     ` Marcelo Tosatti
2003-06-20 20:43       ` [RFC][PATCH] CONFIG_NR_CPUS for 2.4.21 (take 2) J.A. Magallon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030618222336.GC3768@werewolf.able.es \
    --to=jamagallon@able.es \
    --cc=linux-kernel@vger.kernel.org \
    --cc=marcelo@conectiva.com.br \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox