diff options
author | Christoph Lameter <cl@linux.com> | 2011-05-17 16:29:31 -0500 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2011-05-21 12:53:53 +0300 |
commit | 442b06bcea23a01934d3da7ec5898fa154a6cafb (patch) | |
tree | bc08b4a9d7723057a1ff1687a90cdb608b3c8cce /mm | |
parent | bd07d87fd4b8a6af9820544b6bc6c37215d6f8ad (diff) | |
download | lwn-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.c | 4 |
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( |