• Joonsoo Kim's avatar
    mm/slab: alternative implementation for DEBUG_SLAB_LEAK · d31676df
    Joonsoo Kim authored
    
    
    DEBUG_SLAB_LEAK is a debug option.  It's current implementation requires
    status buffer so we need more memory to use it.  And, it cause
    kmem_cache initialization step more complex.
    
    To remove this extra memory usage and to simplify initialization step,
    this patch implement this feature with another way.
    
    When user requests to get slab object owner information, it marks that
    getting information is started.  And then, all free objects in caches
    are flushed to corresponding slab page.  Now, we can distinguish all
    freed object so we can know all allocated objects, too.  After
    collecting slab object owner information on allocated objects, mark is
    checked that there is no free during the processing.  If true, we can be
    sure that our information is correct so information is returned to user.
    
    Although this way is rather complex, it has two important benefits
    mentioned above.  So, I think it is worth changing.
    
    There is one drawback that it takes more time to get slab object owner
    information but it is just a debug option so it doesn't matter at all.
    
    To help review, this patch implements new way only.  Following patch
    will remove useless code.
    
    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>
    d31676df