Re: [RFC] SLAB : NUMA cache_free_alien() very expensive because ofvirt_to_slab(objp); nodeid = slabp->nodeid;

From: Christoph Lameter
Date: Tue Mar 20 2007 - 23:11:22 EST


On Wed, 21 Mar 2007, Andi Kleen wrote:

> > We usually use page_to_nid(). Sure this will determine the node the object
> > resides on. But this may not be the node on which the slab is tracked
> > since there may have been a fallback at alloc time.
>
> How about your slab rewrite? I assume it would make more sense to fix
> such problems in that code instead of the old which is going to be replaced
> at some point.

The slab rewrite first allocates a page and then determines where it
came from instead of requiring the page allocator to allocate from a
certain node. Plus SLUB does not keep per cpu or per node object queues.
So the problem does not occur in the same way. The per cpu slab in SLUB
can contain objects from another node whereas SLAB can only put node local
objects on its queues.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/