Skip to content
  • Joonsoo Kim's avatar
    mm/slab: noinline __ac_put_obj() · d3aec344
    Joonsoo Kim authored
    
    
    Our intention of __ac_put_obj() is that it doesn't affect anything if
    sk_memalloc_socks() is disabled.  But, because __ac_put_obj() is too
    small, compiler inline it to ac_put_obj() and affect code size of free
    path.  This patch add noinline keyword for __ac_put_obj() not to distrupt
    normal free path at all.
    
    <Before>
    nm -S slab-orig.o |
    	grep -e "t cache_alloc_refill" -e "T kfree" -e "T kmem_cache_free"
    
    0000000000001e80 00000000000002f5 t cache_alloc_refill
    0000000000001230 0000000000000258 T kfree
    0000000000000690 000000000000024c T kmem_cache_free
    
    <After>
    nm -S slab-patched.o |
    	grep -e "t cache_alloc_refill" -e "T kfree" -e "T kmem_cache_free"
    
    0000000000001e00 00000000000002e5 t cache_alloc_refill
    00000000000011e0 0000000000000228 T kfree
    0000000000000670 0000000000000216 T kmem_cache_free
    
    cache_alloc_refill: 0x2f5->0x2e5
    kfree: 0x256->0x228
    kmem_cache_free: 0x24c->0x216
    
    code size of each function is reduced slightly.
    
    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>
    d3aec344