[PATCH] Kill CONFIG_4KSTACKS

From: Chris Wedgwood
Date: Sat Sep 11 2004 - 15:43:36 EST


http://linux.bkbits.net:8080/linux-2.5/cset@407af9a3SmWwuO0CEQwLmAZoLXAcCA
seems to indicate 8K stacks are deprecated. This removes the option
completely so were now use 4k-process + 4k-irq stacks all the time.

Probably a bit premature...



arch/i386/Kconfig.debug | 9 ---------
arch/i386/defconfig | 1 -
arch/i386/kernel/irq.c | 24 +-----------------------
include/asm-i386/irq.h | 4 ----
include/asm-i386/module.h | 8 +-------
include/asm-i386/thread_info.h | 4 ----
6 files changed, 2 insertions(+), 48 deletions(-)


===== arch/i386/Kconfig.debug 1.3 vs edited =====
--- 1.3/arch/i386/Kconfig.debug 2004-08-31 00:55:12 -07:00
+++ edited/arch/i386/Kconfig.debug 2004-09-11 13:11:39 -07:00
@@ -46,15 +46,6 @@
This results in a large slowdown, but helps to find certain types
of memory corruptions.

-config 4KSTACKS
- bool "Use 4Kb for kernel stacks instead of 8Kb"
- help
- If you say Y here the kernel will use a 4Kb stacksize for the
- kernel stack attached to each process/thread. This facilitates
- running more threads on a system and also reduces the pressure
- on the VM subsystem for higher order allocations. This option
- will also use IRQ stacks to compensate for the reduced stackspace.
-
config SCHEDSTATS
bool "Collect scheduler statistics"
depends on DEBUG_KERNEL && PROC_FS
===== arch/i386/defconfig 1.113 vs edited =====
--- 1.113/arch/i386/defconfig 2004-06-27 00:19:31 -07:00
+++ edited/arch/i386/defconfig 2004-09-11 12:58:09 -07:00
@@ -1221,7 +1221,6 @@
CONFIG_EARLY_PRINTK=y
CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_FRAME_POINTER is not set
-CONFIG_4KSTACKS=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y

===== arch/i386/kernel/irq.c 1.59 vs edited =====
--- 1.59/arch/i386/kernel/irq.c 2004-08-31 00:57:57 -07:00
+++ edited/arch/i386/kernel/irq.c 2004-09-11 13:15:23 -07:00
@@ -76,10 +76,8 @@
/*
* per-CPU IRQ handling stacks
*/
-#ifdef CONFIG_4KSTACKS
union irq_ctx *hardirq_ctx[NR_CPUS];
union irq_ctx *softirq_ctx[NR_CPUS];
-#endif

/*
* Special irq handlers.
@@ -435,7 +433,7 @@
irq_enter();

#ifdef CONFIG_DEBUG_STACKOVERFLOW
- /* Debugging check for stack overflow: is there less than 1KB free? */
+ /* Debugging check for stack overflow */
{
long esp;

@@ -489,7 +487,6 @@
* useful for irq hardware that does not mask cleanly in an
* SMP environment.
*/
-#ifdef CONFIG_4KSTACKS

for (;;) {
irqreturn_t action_ret;
@@ -542,23 +539,6 @@
desc->status &= ~IRQ_PENDING;
}

-#else
-
- for (;;) {
- irqreturn_t action_ret;
-
- spin_unlock(&desc->lock);
-
- action_ret = handle_IRQ_event(irq, &regs, action);
-
- spin_lock(&desc->lock);
- if (!noirqdebug)
- note_interrupt(irq, desc, action_ret);
- if (likely(!(desc->status & IRQ_PENDING)))
- break;
- desc->status &= ~IRQ_PENDING;
- }
-#endif
desc->status &= ~IRQ_INPROGRESS;

out:
@@ -1077,7 +1057,6 @@
}


-#ifdef CONFIG_4KSTACKS
/*
* These should really be __section__(".bss.page_aligned") as well, but
* gcc's 3.0 and earlier don't handle that correctly.
@@ -1155,4 +1134,3 @@
}

EXPORT_SYMBOL(do_softirq);
-#endif
===== include/asm-i386/irq.h 1.11 vs edited =====
--- 1.11/include/asm-i386/irq.h 2004-04-12 10:54:45 -07:00
+++ edited/include/asm-i386/irq.h 2004-09-11 12:58:19 -07:00
@@ -31,7 +31,6 @@
#define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
#endif

-#ifdef CONFIG_4KSTACKS
/*
* per-CPU IRQ handling contexts (thread information and stack)
*/
@@ -46,9 +45,6 @@
extern void irq_ctx_init(int cpu);

#define __ARCH_HAS_DO_SOFTIRQ
-#else
-#define irq_ctx_init(cpu) do { ; } while (0)
-#endif

struct irqaction;
struct pt_regs;
===== include/asm-i386/module.h 1.11 vs edited =====
--- 1.11/include/asm-i386/module.h 2004-04-12 10:54:45 -07:00
+++ edited/include/asm-i386/module.h 2004-09-11 13:01:43 -07:00
@@ -60,12 +60,6 @@
#define MODULE_REGPARM ""
#endif

-#ifdef CONFIG_4KSTACKS
-#define MODULE_STACKSIZE "4KSTACKS "
-#else
-#define MODULE_STACKSIZE ""
-#endif
-
-#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_REGPARM MODULE_STACKSIZE
+#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_REGPARM

#endif /* _ASM_I386_MODULE_H */
===== include/asm-i386/thread_info.h 1.20 vs edited =====
--- 1.20/include/asm-i386/thread_info.h 2004-08-23 01:14:45 -07:00
+++ edited/include/asm-i386/thread_info.h 2004-09-11 13:01:43 -07:00
@@ -52,11 +52,7 @@
#endif

#define PREEMPT_ACTIVE 0x4000000
-#ifdef CONFIG_4KSTACKS
#define THREAD_SIZE (4096)
-#else
-#define THREAD_SIZE (8192)
-#endif

#define STACK_WARN (THREAD_SIZE/8)
/*

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/