• Christoph Lameter's avatar
    Add parameter to add_partial to avoid having two functions · 7c2e132c
    Christoph Lameter authored
    Add a parameter to add_partial instead of having separate functions.  The
    parameter allows a more detailed control of where the slab pages is placed in
    the partial queues.
    
    If we put slabs back to the front then they are likely immediately used for
    allocations.  If they are put at the end then we can maximize the time that
    the partial slabs spent without being subject to allocations.
    
    When deactivating slab we can put the slabs that had remote objects freed (we
    can see that because objects were put on the freelist that requires locks) to
    them at the end of the list so that the cachelines of remote processors can
    cool down.  Slabs that had objects from the local cpu freed to them (objects
    exist in the lockless freelist) are put in the front of the list to be reused
    ASAP in order to exploit the cache hot state of the local cpu.
    
    Patch seems to slightly improve tbench speed (1-2%).
    Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
    Reviewed-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    7c2e132c
slub.c 97.1 KB