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:0.134 / U:0.820 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site