• Christoph Lameter's avatar
    [PATCH] slab: Remove SLAB_NO_REAP option · ac2b898c
    Christoph Lameter authored
    SLAB_NO_REAP is documented as an option that will cause this slab not to be
    reaped under memory pressure.  However, that is not what happens.  The only
    thing that SLAB_NO_REAP controls at the moment is the reclaim of the unused
    slab elements that were allocated in batch in cache_reap().  Cache_reap()
    is run every few seconds independently of memory pressure.
    
    Could we remove the whole thing?  Its only used by three slabs anyways and
    I cannot find a reason for having this option.
    
    There is an additional problem with SLAB_NO_REAP.  If set then the recovery
    of objects from alien caches is switched off.  Objects not freed on the
    same node where they were initially allocated will only be reused if a
    certain amount of objects accumulates from one alien node (not very likely)
    or if the cache is explicitly shrunk.  (Strangely __cache_shrink does not
    check for SLAB_NO_REAP)
    
    Getting rid of SLAB_NO_REAP fixes the problems with alien cache freeing.
    Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
    Cc: Pekka Enberg <penberg@cs.helsinki.fi>
    Cc: Manfred Spraul <manfred@colorfullife.com>
    Cc: Mark Fasheh <mark.fasheh@oracle.com>
    Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
    ac2b898c
slab.c 101 KB