lkml.org 
[lkml]   [2007]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC 02/26] 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.

    Signed-off-by: Christoph Lameter <clameter@sgi.com>
    ---
    mm/slub.c | 26 +++++++++++++-------------
    1 files changed, 13 insertions(+), 13 deletions(-)

    diff --git a/mm/slub.c b/mm/slub.c
    index 45c76fe..aad6f83 100644
    --- a/mm/slub.c
    +++ b/mm/slub.c
    @@ -2595,6 +2595,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
    @@ -3331,19 +3344,6 @@ static int list_locations(struct kmem_cache *s, char *buf,
    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,
    --
    1.5.2.4
    --
    -
    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-09-01 03:45    [W:0.026 / U:241.916 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site