summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorChristoph Lameter <cl@linux.com>2011-05-17 16:29:31 -0500
committerPekka Enberg <penberg@kernel.org>2011-05-21 12:53:53 +0300
commit442b06bcea23a01934d3da7ec5898fa154a6cafb (patch)
treebc08b4a9d7723057a1ff1687a90cdb608b3c8cce /mm
parentbd07d87fd4b8a6af9820544b6bc6c37215d6f8ad (diff)
downloadlwn-442b06bcea23a01934d3da7ec5898fa154a6cafb.tar.gz
lwn-442b06bcea23a01934d3da7ec5898fa154a6cafb.zip
slub: Remove node check in slab_free
We can set the page pointing in the percpu structure to NULL to have the same effect as setting c->node to NUMA_NO_NODE. Gets rid of one check in slab_free() that was only used for forcing the slab_free to the slowpath for debugging. We still need to set c->node to NUMA_NO_NODE to force the slab_alloc() fastpath to the slowpath in case of debugging. Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/slub.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c
index 9f7bb93e17ec..9ee6f515736d 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1881,6 +1881,8 @@ debug:
page->inuse++;
page->freelist = get_freepointer(s, object);
+ deactivate_slab(s, c);
+ c->page = NULL;
c->node = NUMA_NO_NODE;
goto unlock_out;
}
@@ -2112,7 +2114,7 @@ redo:
tid = c->tid;
barrier();
- if (likely(page == c->page && c->node != NUMA_NO_NODE)) {
+ if (likely(page == c->page)) {
set_freepointer(s, object, c->freelist);
if (unlikely(!this_cpu_cmpxchg_double(