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 - 20:18:32 EST


On Tue, 20 Mar 2007, Andi Kleen wrote:

> > > Is it possible virt_to_slab(objp)->nodeid being different from pfn_to_nid(objp) ?
> >
> > It is possible the page allocator falls back to another node than
> > requested. We would need to check that this never occurs.
>
> The only way to ensure that would be to set a strict mempolicy.
> But I'm not sure that's a good idea -- after all you don't want
> to fail an allocation in this case.
>
> But pfn_to_nid on the object like proposed by Eric should work anyways.
> But I'm not sure the tables used for that will be more often cache hot
> than the slab.

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.

-
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/