Skip to contentSkip to conversation

proper alignment of init task in kernel image

PATCH In review Matt Mackall 2 participants 2 messages Mar 15, 2004

lore
Share & tools
lore
#0 lore raw

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
diff -puN arch/i386/kernel/vmlinux.lds.S~init-task-align arch/i386/kernel/vmlinux.lds.S
@@ -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
#1 lore raw
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
diff -u -p -B -r1.1.1.1 init_task.c
@@ -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..
  */