mm: mm_struct: remove 16 bytes of alignment padding on 64 bit builds
authorRichard Kennedy <richard@rsk.demon.co.uk>
Tue, 22 Mar 2011 23:32:50 +0000 (16:32 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 23 Mar 2011 00:44:03 +0000 (17:44 -0700)
commit481b4bb5e370aa69c1dc276bd08871ec01b41d2a
tree11a276bc58c2eb9b0a00fe751c3bf81bc3240382
parentcb240452bfc2ae9de7c840dd0fb3f5b33ce03c31
mm: mm_struct: remove 16 bytes of alignment padding on 64 bit builds

Reorder mm_struct to remove 16 bytes of alignment padding on 64 bit
builds.  On my config this shrinks mm_struct by enough to fit in one
fewer cache lines and allows more objects per slab in mm_struct
kmem_cache under SLUB.

slabinfo before patch :-
    Sizes (bytes)     Slabs
    --------------------------------
    Object :     848  Total  :       9
    SlabObj:     896  Full   :       2
    SlabSiz:   16384  Partial:       5
    Loss   :      48  CpuSlab:       2
    Align  :      64  Objects:      18

 slabinfo after :-
    Sizes (bytes)     Slabs
    --------------------------------
    Object :     832  Total  :       7
    SlabObj:     832  Full   :       2
    SlabSiz:   16384  Partial:       3
    Loss   :       0  CpuSlab:       2
    Align  :      64  Objects:      19

Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/mm_types.h