Skip to content

Commit

Permalink
slub: Remove node check in slab_free
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Christoph Lameter authored and Pekka Enberg committed May 21, 2011
1 parent bd07d87 commit 442b06b
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion mm/slub.c
Original file line number Diff line number Diff line change
Expand Up @@ -1881,6 +1881,8 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node,

page->inuse++;
page->freelist = get_freepointer(s, object);
deactivate_slab(s, c);
c->page = NULL;
c->node = NUMA_NO_NODE;
goto unlock_out;
}
Expand Down Expand Up @@ -2112,7 +2114,7 @@ static __always_inline void slab_free(struct kmem_cache *s,
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(
Expand Down

0 comments on commit 442b06b

Please sign in to comment.