• Christoph Lameter's avatar
    SLUB: Add MIN_PARTIAL · e95eed57
    Christoph Lameter authored
    We leave a mininum of partial slabs on nodes when we search for
    partial slabs on other node. Define a constant for that value.
    
    Then modify slub to keep MIN_PARTIAL slabs around.
    
    This avoids bad situations where a function frees the last object
    in a slab (which results in the page being returned to the page
    allocator) only to then allocate one again (which requires getting
    a page back from the page allocator if the partial list was empty).
    Keeping a couple of slabs on the partial list reduces overhead.
    
    Empty slabs are added to the end of the partial list to insure that
    partially allocated slabs are consumed first (defragmentation).
    Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    e95eed57
slub.c 75.6 KB