• Pekka Enberg's avatar
    SLUB: Optimize slab_free() debug check · 15b7c514
    Pekka Enberg authored
    This patch optimizes slab_free() debug check to use "c->node != NUMA_NO_NODE"
    instead of "c->node >= 0" because the former generates smaller code on x86-64:
    
      Before:
    
        4736:       48 39 70 08             cmp    %rsi,0x8(%rax)
        473a:       75 26                   jne    4762 <kfree+0xa2>
        473c:       44 8b 48 10             mov    0x10(%rax),%r9d
        4740:       45 85 c9                test   %r9d,%r9d
        4743:       78 1d                   js     4762 <kfree+0xa2>
    
      After:
    
        4736:       48 39 70 08             cmp    %rsi,0x8(%rax)
        473a:       75 23                   jne    475f <kfree+0x9f>
        473c:       83 78 10 ff             cmpl   $0xffffffffffffffff,0x10(%rax)
        4740:       74 1d                   je     475f <kfree+0x9f>
    
    This patch also cleans up __slab_alloc() to use NUMA_NO_NODE instead of "-1"
    for enabling debugging for a per-CPU cache.
    Acked-by: default avatarChristoph Lameter <cl@linux.com>
    Acked-by: default avatarDavid Rientjes <rientjes@google.com>
    Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
    15b7c514
slub.c 110 KB