]> git.hungrycats.org Git - linux/commitdiff
[PATCH] i386: put irq stacks in .bss.page_aligned section
authorAndrew Morton <akpm@osdl.org>
Sat, 29 May 2004 03:56:47 +0000 (20:56 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 29 May 2004 03:56:47 +0000 (20:56 -0700)
From: Matt Mackall <mpm@selenic.com>

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 <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/irq.c

index ea69f21994f61a810d08a4a88c6601d0d38aac00..579b3282eed8f4d4a219f1619a07bd94961c2e2d 100644 (file)
@@ -1117,8 +1117,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