[PATCH] slub: Don't throw away partial remote slabs if there is no local memory

David Laight David.Laight at ACULAB.COM
Tue Jan 7 20:42:41 EST 2014

> From: Anton Blanchard
> We noticed a huge amount of slab memory consumed on a large ppc64 box:
> Slab:            2094336 kB
> Almost 2GB. This box is not balanced and some nodes do not have local
> memory, causing slub to be very inefficient in its slab usage.
> Each time we call kmem_cache_alloc_node slub checks the per cpu slab,
> sees it isn't node local, deactivates it and tries to allocate a new
> slab. ...
>  	if (unlikely(!node_match(page, node))) {
>  		stat(s, ALLOC_NODE_MISMATCH);
> 		deactivate_slab(s, page, c->freelist);
> 		c->page = NULL;
> 		c->freelist = NULL;
> 		goto new_slab;
>  	}

Why not just delete the entire test?
Presumably some time a little earlier no local memory was available.
Even if there is some available now, it is very likely that some won't
be available again in the near future.


More information about the Linuxppc-dev mailing list