[PATCH] Put irq stacks in .bss.page_aligned section

From: Matt Mackall
Date: Tue May 25 2004 - 14:32:54 EST


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@xxxxxxxxxxx>

Index: tiny/arch/i386/kernel/irq.c
===================================================================
--- tiny.orig/arch/i386/kernel/irq.c 2004-05-09 14:23:03.000000000 -0500
+++ tiny/arch/i386/kernel/irq.c 2004-05-25 14:20:24.000000000 -0500
@@ -1125,8 +1125,8 @@


#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


--
Mathematics is the supreme nostalgia of our time.
-
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/