lkml.org 
[lkml]   [2011]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[slubllv6 13/17] slub: Get rid of the another_slab label
    We can avoid deactivate slab in special cases if we do the
    deactivation of slabs in each code flow that leads to new_slab.

    Signed-off-by: Christoph Lameter <cl@linux.com>

    ---
    mm/slub.c | 11 +++++------
    1 file changed, 5 insertions(+), 6 deletions(-)

    Index: linux-2.6/mm/slub.c
    ===================================================================
    --- linux-2.6.orig/mm/slub.c 2011-05-24 09:41:00.194875015 -0500
    +++ linux-2.6/mm/slub.c 2011-05-24 09:41:03.744874994 -0500
    @@ -1951,8 +1951,10 @@ static void *__slab_alloc(struct kmem_ca
    if (!page)
    goto new_slab;

    - if (unlikely(!node_match(c, node)))
    - goto another_slab;
    + if (unlikely(!node_match(c, node))) {
    + deactivate_slab(s, c);
    + goto new_slab;
    + }

    stat(s, ALLOC_SLOWPATH);

    @@ -1972,7 +1974,7 @@ load_freelist:
    VM_BUG_ON(!page->frozen);

    if (unlikely(!object))
    - goto another_slab;
    + goto new_slab;

    stat(s, ALLOC_REFILL);

    @@ -1981,9 +1983,6 @@ load_freelist:
    local_irq_restore(flags);
    return object;

    -another_slab:
    - deactivate_slab(s, c);
    -
    new_slab:
    page = get_partial(s, gfpflags, node);
    if (page) {


    \
     
     \ /
      Last update: 2011-05-26 20:19    [W:2.144 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site