[slubllv3 18/21] slub: Get rid of the another_slab label
From: Christoph Lameter
Date: Fri Apr 15 2011 - 16:48:31 EST
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@xxxxxxxxx>
---
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) {
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/