proper alignment of init task in kernel image
PATCH 1/1 proper alignment of init task in kernel image
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(-)
arch/i386/kernel/vmlinux.lds.S renamed from arch/i386/kernel/vmlinux.lds.S~init-task-align +3 -2
@@ -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 */
_
Signature · 1 line
Matt Mackall : http://www.selenic.com : Linux development and consulting
Quoted 2 lines · Matt Mackall
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
arch/i386/kernel/init_task.c +1 -1
@@ -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.. */