All of lore.kernel.org
 help / color / mirror / Atom feed
From: travis@sgi.com
To: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <ak@suse.de>,
	mingo@elte.hu
Cc: Christoph Lameter <clameter@sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 4/5] x86: Add config variables for SMP_MAX
Date: Fri, 18 Jan 2008 10:30:15 -0800	[thread overview]
Message-ID: <20080118183011.917801000@sgi.com> (raw)
In-Reply-To: 20080118183011.354965000@sgi.com

[-- Attachment #1: config-smp-max --]
[-- Type: text/plain, Size: 2954 bytes --]

Adds and increases some config variables to accomodate larger SMP
configurations:

	NR_CPUS:      max limit now 4096
	NODES_SHIFT:  max limit now 9
	THREAD_ORDER: max limit now 3
	X86_SMP_MAX:  say Y to enable possible cpus == NR_CPUS

Signed-off-by: Mike Travis <travis@sgi.com>
---
 arch/x86/Kconfig             |   17 ++++++++++++++---
 arch/x86/Kconfig.debug       |    9 +++++++++
 arch/x86/kernel/smpboot_64.c |    4 ++++
 include/asm-x86/page_64.h    |    4 ++++
 4 files changed, 31 insertions(+), 3 deletions(-)

--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -487,19 +487,29 @@ config ARCH_SUPPORTS_KVM
 
 
 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 "1024" if X86_SMP_MAX
 	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.
 
+config THREAD_ORDER
+	int "Kernel stack size (in page order)"
+	range 1 3
+	depends on X86_64_SMP
+	default "3" if X86_SMP_MAX
+	default "1"
+	help
+	  Increases kernel stack size.
+
 config SCHED_SMT
 	bool "SMT (Hyperthreading) scheduler support"
 	depends on (X86_64 && SMP) || (X86_32 && X86_HT)
@@ -882,6 +892,7 @@ config NUMA_EMU
 
 config NODES_SHIFT
 	int
+	default "9" if X86_SMP_MAX
 	default "6" if X86_64
 	default "4" if X86_NUMAQ
 	default "3"
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -73,6 +73,15 @@ config X86_FIND_SMP_CONFIG
 	depends on X86_LOCAL_APIC || X86_VOYAGER
 	depends on X86_32
 
+config X86_SMP_MAX
+	bool "Enable Maximum SMP configuration"
+	def_bool n
+	depends on X86_64_SMP
+	help
+	  Say Y here to enable a "large" SMP configuration for testing
+	  purposes.  It does this by increasing the number of possible
+	  cpus to the NR_CPUS count. 
+
 config X86_MPPARSE
 	def_bool y
 	depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -784,6 +784,10 @@ __init void prefill_possible_map(void)
 	possible = num_processors + additional_cpus;
 	if (possible > NR_CPUS) 
 		possible = NR_CPUS;
+#ifdef	CONFIG_SMP_MAX
+	if (possible < NR_CPUS)
+		possible = NR_CPUS;
+#endif
 
 	printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n",
 		possible,
--- a/include/asm-x86/page_64.h
+++ b/include/asm-x86/page_64.h
@@ -3,7 +3,11 @@
 
 #define PAGETABLE_LEVELS	4
 
+#ifdef	CONFIG_THREAD_ORDER
+#define THREAD_ORDER	CONFIG_THREAD_ORDER
+#else
 #define THREAD_ORDER	1
+#endif
 #define THREAD_SIZE  (PAGE_SIZE << THREAD_ORDER)
 #define CURRENT_MASK (~(THREAD_SIZE-1))
 

-- 

WARNING: multiple messages have this Message-ID (diff)
From: travis@sgi.com
To: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <ak@suse.de>,
	mingo@elte.hu
Cc: Christoph Lameter <clameter@sgi.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 4/5] x86: Add config variables for SMP_MAX
Date: Fri, 18 Jan 2008 10:30:15 -0800	[thread overview]
Message-ID: <20080118183011.917801000@sgi.com> (raw)
In-Reply-To: 20080118183011.354965000@sgi.com

[-- Attachment #1: config-smp-max --]
[-- Type: text/plain, Size: 3180 bytes --]

Adds and increases some config variables to accomodate larger SMP
configurations:

	NR_CPUS:      max limit now 4096
	NODES_SHIFT:  max limit now 9
	THREAD_ORDER: max limit now 3
	X86_SMP_MAX:  say Y to enable possible cpus == NR_CPUS

Signed-off-by: Mike Travis <travis@sgi.com>
---
 arch/x86/Kconfig             |   17 ++++++++++++++---
 arch/x86/Kconfig.debug       |    9 +++++++++
 arch/x86/kernel/smpboot_64.c |    4 ++++
 include/asm-x86/page_64.h    |    4 ++++
 4 files changed, 31 insertions(+), 3 deletions(-)

--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -487,19 +487,29 @@ config ARCH_SUPPORTS_KVM
 
 
 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 "1024" if X86_SMP_MAX
 	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.
 
+config THREAD_ORDER
+	int "Kernel stack size (in page order)"
+	range 1 3
+	depends on X86_64_SMP
+	default "3" if X86_SMP_MAX
+	default "1"
+	help
+	  Increases kernel stack size.
+
 config SCHED_SMT
 	bool "SMT (Hyperthreading) scheduler support"
 	depends on (X86_64 && SMP) || (X86_32 && X86_HT)
@@ -882,6 +892,7 @@ config NUMA_EMU
 
 config NODES_SHIFT
 	int
+	default "9" if X86_SMP_MAX
 	default "6" if X86_64
 	default "4" if X86_NUMAQ
 	default "3"
--- a/arch/x86/Kconfig.debug
+++ b/arch/x86/Kconfig.debug
@@ -73,6 +73,15 @@ config X86_FIND_SMP_CONFIG
 	depends on X86_LOCAL_APIC || X86_VOYAGER
 	depends on X86_32
 
+config X86_SMP_MAX
+	bool "Enable Maximum SMP configuration"
+	def_bool n
+	depends on X86_64_SMP
+	help
+	  Say Y here to enable a "large" SMP configuration for testing
+	  purposes.  It does this by increasing the number of possible
+	  cpus to the NR_CPUS count. 
+
 config X86_MPPARSE
 	def_bool y
 	depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -784,6 +784,10 @@ __init void prefill_possible_map(void)
 	possible = num_processors + additional_cpus;
 	if (possible > NR_CPUS) 
 		possible = NR_CPUS;
+#ifdef	CONFIG_SMP_MAX
+	if (possible < NR_CPUS)
+		possible = NR_CPUS;
+#endif
 
 	printk(KERN_INFO "SMP: Allowing %d CPUs, %d hotplug CPUs\n",
 		possible,
--- a/include/asm-x86/page_64.h
+++ b/include/asm-x86/page_64.h
@@ -3,7 +3,11 @@
 
 #define PAGETABLE_LEVELS	4
 
+#ifdef	CONFIG_THREAD_ORDER
+#define THREAD_ORDER	CONFIG_THREAD_ORDER
+#else
 #define THREAD_ORDER	1
+#endif
 #define THREAD_SIZE  (PAGE_SIZE << THREAD_ORDER)
 #define CURRENT_MASK (~(THREAD_SIZE-1))
 

-- 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2008-01-18 18:34 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-18 18:30 [PATCH 0/5] x86: Reduce memory usage for large count NR_CPUs fixup travis
2008-01-18 18:30 ` travis
2008-01-18 18:30 ` [PATCH 1/5] x86: Change size of node ids from u8 to u16 fixup travis
2008-01-18 18:30   ` travis
2008-01-18 19:56   ` Jan Engelhardt
2008-01-18 19:56     ` Jan Engelhardt
2008-01-18 19:59     ` Mike Travis
2008-01-18 19:59       ` Mike Travis
2008-01-19  4:03   ` Yinghai Lu
2008-01-19  4:03     ` Yinghai Lu
2008-01-19  4:36     ` David Rientjes
2008-01-19  4:36       ` David Rientjes
2008-01-19  4:43       ` Yinghai Lu
2008-01-19  4:43         ` Yinghai Lu
2008-01-19  5:17         ` David Rientjes
2008-01-19  5:17           ` David Rientjes
2008-01-19  6:20           ` Yinghai Lu
2008-01-19  6:20             ` Yinghai Lu
2008-01-19 21:25       ` Mike Travis
2008-01-19 21:25         ` Mike Travis
2008-01-19 22:33         ` David Rientjes
2008-01-19 22:33           ` David Rientjes
2008-01-20  0:41           ` Mike Travis
2008-01-20  0:41             ` Mike Travis
2008-01-20  1:31             ` Yinghai Lu
2008-01-20  1:31               ` Yinghai Lu
2008-01-20  6:22             ` David Rientjes
2008-01-20  6:22               ` David Rientjes
2008-01-18 18:30 ` [PATCH 2/5] x86: Change NR_CPUS arrays in numa_64 fixup travis
2008-01-18 18:30   ` travis
2008-01-18 18:30 ` [PATCH 3/5] x86: Change bios_cpu_apicid to percpu data variable fixup travis
2008-01-18 18:30   ` travis
2008-01-18 18:30 ` travis [this message]
2008-01-18 18:30   ` [PATCH 4/5] x86: Add config variables for SMP_MAX travis
2008-01-18 20:04   ` Ingo Oeser
2008-01-18 20:04     ` Ingo Oeser
2008-01-18 20:10     ` Christoph Lameter
2008-01-18 20:10       ` Christoph Lameter
2008-01-18 20:14     ` Mike Travis
2008-01-18 20:14       ` Mike Travis
2008-01-18 20:36       ` Andi Kleen
2008-01-18 20:36         ` Andi Kleen
2008-01-18 20:48         ` Mike Travis
2008-01-18 20:48           ` Mike Travis
2008-01-18 21:02         ` [PATCH 4/5] x86: Add config variables for SMP_MAX II Andi Kleen
2008-01-18 21:02           ` Andi Kleen
2008-01-18 20:48       ` [PATCH 4/5] x86: Add config variables for SMP_MAX Ingo Molnar
2008-01-18 20:48         ` Ingo Molnar
2008-01-18 20:55         ` Mike Travis
2008-01-18 20:55           ` Mike Travis
2008-01-18 20:58           ` Andi Kleen
2008-01-18 20:58             ` Andi Kleen
2008-01-28 16:45       ` Paul Jackson
2008-01-28 16:45         ` Paul Jackson
2008-01-28 17:00         ` Andi Kleen
2008-01-28 17:00           ` Andi Kleen
2008-01-18 20:46   ` Ingo Molnar
2008-01-18 20:46     ` Ingo Molnar
2008-01-19 14:52   ` Ingo Molnar
2008-01-19 15:15     ` Ingo Molnar
2008-01-19 15:15       ` Ingo Molnar
2008-01-19 15:24       ` Ingo Molnar
2008-01-19 15:24         ` Ingo Molnar
2008-01-19 21:52         ` Mike Travis
2008-01-19 21:52           ` Mike Travis
2008-01-19 23:24         ` Mike Travis
2008-01-19 23:24           ` Mike Travis
2008-01-20  1:14         ` Mike Travis
2008-01-20  1:14           ` Mike Travis
2008-01-19 21:39     ` Mike Travis
2008-01-19 21:39       ` Mike Travis
2008-01-18 18:30 ` [PATCH 5/5] x86: Add debug of invalid per_cpu map accesses travis
2008-01-18 18:30   ` travis
2008-01-18 18:33   ` Andi Kleen
2008-01-18 18:33     ` Andi Kleen
2008-01-18 18:49     ` Mike Travis
2008-01-18 18:49       ` Mike Travis
2008-01-18 18:56     ` Christoph Lameter
2008-01-18 18:56       ` Christoph Lameter
2008-01-18 20:49     ` Ingo Molnar
2008-01-18 20:49       ` Ingo Molnar

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=20080118183011.917801000@sgi.com \
    --to=travis@sgi.com \
    --cc=ak@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@elte.hu \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.