lkml.org 
[lkml]   [2011]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[slubllv3 18/21] 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-04-15 14:30:06.000000000 -0500
    +++ linux-2.6/mm/slub.c 2011-04-15 14:30:10.000000000 -0500
    @@ -1938,8 +1938,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_REFILL);

    @@ -1964,7 +1966,7 @@ load_freelist:
    VM_BUG_ON(!page->frozen);

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

    c->freelist = get_freepointer(s, object);

    @@ -1975,9 +1977,6 @@ load_freelist:
    stat(s, ALLOC_SLOWPATH);
    return object;

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


    \
     
     \ /
      Last update: 2011-04-15 22:51    [W:0.064 / U:61.508 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site