On Tue, Sep 29, 2015 at 02:34:12PM +0100, Måns Rullgård wrote: > >> >> text data bss dec hex filename > >> >> 3996071 155804 88992 4240867 40b5e3 vmlinux ip22 baseline > >> >> 3985687 159900 88992 4234579 409d53 vmlinux ip22 + bswap patch > >> >> 6913157 378552 251024 7542733 7317cd vmlinux ip27 baseline > >> >> 6878581 378552 251024 7508157 7290bd vmlinux ip27 + bswap patch > >> >> 5773777 268752 187424 6229953 5f0fc1 vmlinux malta baseline > >> >> 5773401 268752 187424 6229577 5f0e49 vmlinux malta + bswap patch > >> > > >> > A still unexplained effect of this patch and the reason why I have not > >> > committed this patch is the increase of the data size for the ip22 > >> > configuration by 4096 bytes. There is no change in data size expected. > >> > Also this affects only the test with ip22_defconfig not any of the others > >> > I've tried. > >> > >> Have you checked which object file(s) the increase comes from? > > > > The data size difference is created in the final link stage. data for > > all inividual .o files even vmlinux.o; only vmlinux differs. > > Could it be an alignment thing. Check if the alignment of some data > section has changed from something smaller to 4096. Almost. Alignment has changed but 8k alignment of init_thread_union forced the linker to waste an extra 4k. I always knew this could happen but never actually observed this. Hard to avoid but it's yet another reason to minimize stack size which on MIPS may be up to 4 pages for 64 bit kernels with 4k pages. Ralf