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>
This commit is contained in:
parent
bd07d87fd4
commit
442b06bcea
@ -1881,6 +1881,8 @@ debug:
|
|||||||
|
|
||||||
page->inuse++;
|
page->inuse++;
|
||||||
page->freelist = get_freepointer(s, object);
|
page->freelist = get_freepointer(s, object);
|
||||||
|
deactivate_slab(s, c);
|
||||||
|
c->page = NULL;
|
||||||
c->node = NUMA_NO_NODE;
|
c->node = NUMA_NO_NODE;
|
||||||
goto unlock_out;
|
goto unlock_out;
|
||||||
}
|
}
|
||||||
@ -2112,7 +2114,7 @@ redo:
|
|||||||
tid = c->tid;
|
tid = c->tid;
|
||||||
barrier();
|
barrier();
|
||||||
|
|
||||||
if (likely(page == c->page && c->node != NUMA_NO_NODE)) {
|
if (likely(page == c->page)) {
|
||||||
set_freepointer(s, object, c->freelist);
|
set_freepointer(s, object, c->freelist);
|
||||||
|
|
||||||
if (unlikely(!this_cpu_cmpxchg_double(
|
if (unlikely(!this_cpu_cmpxchg_double(
|
||||||
|
Loading…
Reference in New Issue
Block a user