lkml.org 
[lkml]   [2007]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 01/23] SLUB: Move count_partial()
    Move the counting function for objects in partial slabs so that it is placed
    before kmem_cache_shrink. We will need to use it to establish the
    fragmentation ratio of per node slab lists.

    [This patch is already in mm]

    Reviewed-by: Rik van Riel <riel@redhat.com>
    Signed-off-by: Christoph Lameter <clameter@sgi.com>
    ---
    mm/slub.c | 26 +++++++++++++-------------
    1 file changed, 13 insertions(+), 13 deletions(-)

    Index: linux-2.6/mm/slub.c
    ===================================================================
    --- linux-2.6.orig/mm/slub.c 2007-11-06 12:34:13.000000000 -0800
    +++ linux-2.6/mm/slub.c 2007-11-06 12:35:37.000000000 -0800
    @@ -2758,6 +2758,19 @@ void kfree(const void *x)
    }
    EXPORT_SYMBOL(kfree);

    +static unsigned long count_partial(struct kmem_cache_node *n)
    +{
    + unsigned long flags;
    + unsigned long x = 0;
    + struct page *page;
    +
    + spin_lock_irqsave(&n->list_lock, flags);
    + list_for_each_entry(page, &n->partial, lru)
    + x += page->inuse;
    + spin_unlock_irqrestore(&n->list_lock, flags);
    + return x;
    +}
    +
    /*
    * kmem_cache_shrink removes empty slabs from the partial lists and sorts
    * the remaining slabs by the number of items in use. The slabs with the
    @@ -3615,19 +3628,6 @@ static int list_locations(struct kmem_ca
    return n;
    }

    -static unsigned long count_partial(struct kmem_cache_node *n)
    -{
    - unsigned long flags;
    - unsigned long x = 0;
    - struct page *page;
    -
    - spin_lock_irqsave(&n->list_lock, flags);
    - list_for_each_entry(page, &n->partial, lru)
    - x += page->inuse;
    - spin_unlock_irqrestore(&n->list_lock, flags);
    - return x;
    -}
    -
    enum slab_stat_type {
    SL_FULL,
    SL_PARTIAL,
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-11-07 02:15    [W:3.898 / U:0.268 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site