Make the stack size configurable now that we can fallback to vmalloc if
necessary. SGI NUMA configurations may need more stack because cpumasks
and nodemasks are at times kept on the stack. With the coming 16k cpu
support this is going to be 2k just for the mask. This patch allows to
run with 16k or 32k kernel stacks on x86_74.
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Christoph Lameter <[email protected]>
---
arch/x86_64/Kconfig | 6 ++++++
include/asm-x86_64/page.h | 3 +--
include/asm-x86_64/thread_info.h | 4 ++--
3 files changed, 9 insertions(+), 4 deletions(-)
Index: linux-2.6/arch/x86_64/Kconfig
===================================================================
--- linux-2.6.orig/arch/x86_64/Kconfig 2007-10-03 18:11:20.000000000 -0700
+++ linux-2.6/arch/x86_64/Kconfig 2007-10-03 18:12:13.000000000 -0700
@@ -363,6 +363,12 @@ config NODES_SHIFT
default "6"
depends on NEED_MULTIPLE_NODES
+config THREAD_ORDER
+ int "Kernel stack size (in page order)"
+ default "1"
+ help
+ Page order for the thread stack.
+
# Dummy CONFIG option to select ACPI_NUMA from drivers/acpi/Kconfig.
config X86_64_ACPI_NUMA
Index: linux-2.6/include/asm-x86_64/page.h
===================================================================
--- linux-2.6.orig/include/asm-x86_64/page.h 2007-10-03 18:11:20.000000000 -0700
+++ linux-2.6/include/asm-x86_64/page.h 2007-10-03 18:12:13.000000000 -0700
@@ -9,8 +9,7 @@
#define PAGE_MASK (~(PAGE_SIZE-1))
#define PHYSICAL_PAGE_MASK (~(PAGE_SIZE-1) & __PHYSICAL_MASK)
-#define THREAD_ORDER 1
-#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
+#define THREAD_SIZE (PAGE_SIZE << CONFIG_THREAD_ORDER)
#define CURRENT_MASK (~(THREAD_SIZE-1))
#define EXCEPTION_STACK_ORDER 0
Index: linux-2.6/include/asm-x86_64/thread_info.h
===================================================================
--- linux-2.6.orig/include/asm-x86_64/thread_info.h 2007-10-03 18:12:13.000000000 -0700
+++ linux-2.6/include/asm-x86_64/thread_info.h 2007-10-03 18:12:13.000000000 -0700
@@ -80,9 +80,9 @@ static inline struct thread_info *stack_
#endif
#define alloc_thread_info(tsk) \
- ((struct thread_info *) __get_free_pages(THREAD_FLAGS, THREAD_ORDER))
+ ((struct thread_info *) __get_free_pages(THREAD_FLAGS, CONFIG_THREAD_ORDER))
-#define free_thread_info(ti) free_pages((unsigned long) (ti), THREAD_ORDER)
+#define free_thread_info(ti) free_pages((unsigned long) (ti), CONFIG_THREAD_ORDER)
#else /* !__ASSEMBLY__ */
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]