• Joonsoo Kim's avatar
    mm/slab: factor out unlikely part of cache_free_alien() · 25c4f304
    Joonsoo Kim authored
    cache_free_alien() is rarely used function when node mismatch.  But, it is
    defined with inline attribute so it is inlined to __cache_free() which is
    core free function of slab allocator.  It uselessly makes
    kmem_cache_free()/kfree() functions large.  What we really need to inline
    is just checking node match so this patch factor out other parts of
    cache_free_alien() to reduce code size of kmem_cache_free()/ kfree().
    
    <Before>
    nm -S mm/slab.o | grep -e "T kfree" -e "T kmem_cache_free"
    00000000000011e0 0000000000000228 T kfree
    0000000000000670 0000000000000216 T kmem_cache_free
    
    <After>
    nm -S mm/slab.o | grep -e "T kfree" -e "T kmem_cache_free"
    0000000000001110 00000000000001b5 T kfree
    0000000000000750 0000000000000181 T kmem_cache_free
    
    You can see slightly reduced size of text: 0x228->0x1b5, 0x216->0x181.
    Signed-off-by: default avatarJoonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    25c4f304
slab.c 109 KB