This keeps the alignment of the init task matched with the stack size.
Saves 4k for 4k stacks, keeps system from exploding with 16k. Please apply.
test-mpm/arch/i386/kernel/vmlinux.lds.S | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff -puN arch/i386/kernel/vmlinux.lds.S~init-task-align arch/i386/kernel/vmlinux.lds.S
--- test/arch/i386/kernel/vmlinux.lds.S~init-task-align 2004-03-14 17:57:42.000000000 -0600
+++ test-mpm/arch/i386/kernel/vmlinux.lds.S 2004-03-14 18:00:02.000000000 -0600
@@ -6,7 +6,8 @@
#include <linux/config.h>
#include <asm/page.h>
#include <asm/asm_offsets.h>
-
+#include <asm/thread_info.h>
+
OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")
OUTPUT_ARCH(i386)
ENTRY(startup_32)
@@ -61,7 +62,7 @@ SECTIONS
_edata = .; /* End of data section */
- . = ALIGN(8192); /* init_task */
+ . = ALIGN(THREAD_SIZE); /* init_task */
.data.init_task : { *(.data.init_task) }
/* will be freed after init */
_
--
Matt Mackall : http://www.selenic.com : Linux development and consulting
On Sun, 14 Mar 2004, Matt Mackall wrote:
> This keeps the alignment of the init task matched with the stack size.
> Saves 4k for 4k stacks, keeps system from exploding with 16k. Please apply.
Don't forget the following minor patch;
Index: linux-2.6.4-mm1/arch/i386/kernel/init_task.c
===================================================================
RCS file: /home/cvsroot/linux-2.6.4-mm1/arch/i386/kernel/init_task.c,v
retrieving revision 1.1.1.1
diff -u -p -B -r1.1.1.1 init_task.c
--- linux-2.6.4-mm1/arch/i386/kernel/init_task.c 11 Mar 2004 15:26:38 -0000 1.1.1.1
+++ linux-2.6.4-mm1/arch/i386/kernel/init_task.c 15 Mar 2004 00:51:14 -0000
@@ -20,7 +20,7 @@ EXPORT_SYMBOL(init_mm);
/*
* Initial thread structure.
*
- * We need to make sure that this is 8192-byte aligned due to the
+ * We need to make sure that this is THREAD_SIZE aligned due to the
* way process stacks are handled. This is done by having a special
* "init_task" linker map entry..
*/