• Joonsoo Kim's avatar
    mm/slab: fix stale code comment · 12c61fe9
    Joonsoo Kim authored
    This patchset implements a new freed object management way, that is,
    OBJFREELIST_SLAB.  Purpose of it is to reduce memory overhead in SLAB.
    
    SLAB needs a array to manage freed objects in a slab.  If there is
    leftover after objects are packed into a slab, we can use it as a
    management array, and, in this case, there is no memory waste.  But, in
    the other cases, we need to allocate extra memory for a management array
    or utilize dedicated internal memory in a slab for it.  Both cases
    causes memory waste so it's not good.
    
    With this patchset, freed object itself can be used for a management
    array.  So, memory waste could be reduced.  Detailed idea and numbers
    are described in last patch's commit description.  Please refer it.
    
    In fact, I tested another idea implementing OBJFREELIST_SLAB with
    extendable linked array through another freed object.  It can remove
    memory waste completely but it causes more computational overhead in
    critical lock path and it seems that overhead outweigh benefit.  So,
    this patchset doesn't include it.  I will attach prototype just for a
    reference.
    
    This patch (of 16):
    
    We use freelist_idx_t type for free object management whose size would be
    smaller than size of unsigned int.  Fix it.
    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: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Jesper Dangaard Brouer <brouer@redhat.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    12c61fe9
slab.c 108 KB