forked from mirrors/linux
		
	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
					
				
					 1 changed files with 3 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -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;
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue