From 8e63b66756d82fad459c14debe8e9e703d39510a Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 3 Oct 2007 20:42:45 -0700 Subject: [PATCH] Configure stack size 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: ak@suse.de Cc: travis@sgi.com Signed-off-by: Christoph Lameter --- 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(-) diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index b4d9089..86d5a17 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig @@ -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 diff --git a/include/asm-x86_64/page.h b/include/asm-x86_64/page.h index 88adf1a..5bd29c0 100644 --- a/include/asm-x86_64/page.h +++ b/include/asm-x86_64/page.h @@ -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 diff --git a/include/asm-x86_64/thread_info.h b/include/asm-x86_64/thread_info.h index 0c726d7..c084b02 100644 --- a/include/asm-x86_64/thread_info.h +++ b/include/asm-x86_64/thread_info.h @@ -80,9 +80,9 @@ static inline struct thread_info *stack_thread_info(void) #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__ */ -- 1.5.4.1