kernel_optimize_test/include
Eric Dumazet 6a8ba9d121 [PATCH] reorder struct pipe_buf_operations
Fields of struct pipe_buf_operations have not a precise layout (ie not
optimized to fit cache lines nor reduce cache line ping pongs)

The bufs[] array is *large* and is placed near the beginning of the
structure, so all following fields have a large offset.  This is
unfortunate because many archs have smaller instructions when using small
offsets relative to a base register.  On x86 for example, 7 bits offsets
have smaller instruction lengths.

Moving bufs[] at the end of pipe_buf_operations permits all fields to have
small offsets, and reduce text size, and icache pressure.

# size vmlinux.pre vmlinux
    text    data     bss     dec     hex filename
3268989  664356  492196 4425541  438745 vmlinux.pre
3268765  664356  492196 4425317  438665 vmlinux

So this patch reduces text size by 224 bytes on my x86_64 machine. Similar
results on ia32.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-13 09:05:48 -08:00
..
acpi
asm-alpha [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-arm Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6 2006-12-12 09:57:55 -08:00
asm-arm26 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-avr32 Merge branch 'for-linus' of git://www.atmel.no/~hskinnemoen/linux/kernel/avr32 2006-12-11 18:28:59 -08:00
asm-cris [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-frv [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-generic Make sure we populate the initroot filesystem late enough 2006-12-11 12:12:04 -08:00
asm-h8300 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-i386 Merge ../linus 2006-12-12 17:41:41 -05:00
asm-ia64 [IA64] enable trap code on slot 1 2006-12-12 12:00:55 -08:00
asm-m32r [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-m68k [PATCH] Sun3: General updates 2006-12-09 09:41:18 -08:00
asm-m68knommu
asm-mips [MIPS] IP27: Don't drag <asm/sn/arch.h> into topology.h. 2006-12-12 01:46:24 +00:00
asm-parisc [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-powerpc Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-12-11 18:24:58 -08:00
asm-ppc Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc 2006-12-11 16:31:42 +11:00
asm-s390 Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2006-12-08 11:21:55 -08:00
asm-sh sh: SH-MobileR SH7722 CPU support. 2006-12-12 08:42:09 +09:00
asm-sh64
asm-sparc [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-sparc64 [SPARC64]: Fix several kprobes bugs. 2006-12-10 02:42:03 -08:00
asm-um [PATCH] UML: add generic BUG support 2006-12-08 08:28:39 -08:00
asm-v850 [PATCH] tty: preparatory structures for termios revamp 2006-12-08 08:28:56 -08:00
asm-x86_64 Merge ../linus 2006-12-12 17:41:41 -05:00
asm-xtensa [PATCH] xtensa: fix system call interface 2006-12-10 09:55:39 -08:00
crypto
keys
linux [PATCH] reorder struct pipe_buf_operations 2006-12-13 09:05:48 -08:00
math-emu
media V4L/DVB (4935): Added the capability of selecting fm gain by tuner 2006-12-10 09:05:52 -02:00
mtd
net [HAMRADIO]: Fix baycom_epp.c compile failure. 2006-12-11 14:35:01 -08:00
pcmcia
rdma IB: Add DMA mapping functions to allow device drivers to interpose 2006-12-12 14:27:41 -08:00
rxrpc
scsi
sound
video [PATCH] video: pm3fb macros fix 2006-12-08 08:29:08 -08:00
Kbuild