From: Matt Mackall I noticed that my vmlinux BSS had grown from 17k to 45k between 2.6.5 and 2.6.6. 8k was moving a pair of objects in head.S from the text section to bss, 8k was the introduction of IRQ stacks, while the remainder (12k) was page alignment slop, some of it spurious. The following patch brings BSS down to the expected 33k. Throw the IRQ stacks into the page aligned section to avoided wasted BSS space. While we'd expect this to save up to 4k, this saves over 10k of BSS here due to gcc3.3 spuriously aligning other objects in the vicinity. Signed-off-by: Matt Mackall Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/irq.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN arch/i386/kernel/irq.c~put-irq-stacks-in-bsspage_aligned-section arch/i386/kernel/irq.c --- 25/arch/i386/kernel/irq.c~put-irq-stacks-in-bsspage_aligned-section 2004-05-25 20:44:01.515115664 -0700 +++ 25-akpm/arch/i386/kernel/irq.c 2004-05-25 20:44:01.519115056 -0700 @@ -1118,8 +1118,8 @@ void init_irq_proc (void) #ifdef CONFIG_4KSTACKS -static char softirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE))); -static char hardirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE))); +static char softirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE), __section__(".bss.page_aligned"))); +static char hardirq_stack[NR_CPUS * THREAD_SIZE] __attribute__((__aligned__(THREAD_SIZE), __section__(".bss.page_aligned"))); /* * allocate per-cpu stacks for hardirq and for softirq processing _