Re: slab: Remove SLAB_NO_REAP option

From: Ravikiran G Thirumalai
Date: Thu Feb 23 2006 - 14:14:19 EST


On Thu, Feb 23, 2006 at 10:47:53AM -0800, Christoph Lameter wrote:
> On Thu, 23 Feb 2006, Pekka Enberg wrote:
>
> > Look at the loop, it is redundant work (like acquiring/releasing a
> > spinlock). The cache_cache is practically static, which is why it makes
> > sense to leave it alone.
>
> There is a loop but its broken by
>
> p = l3->slabs_free.next;
> if (p == &(l3->slabs_free))
> break;
>
> One cache_reap() may scan the free list but once its free the code is
> skipped.

I think Pekka is referring to draining of alien cache, array caches and the
shared caches before the loop is is broken by above.

>
> There are potentially large amounts of other caches around that are also
> basically static and which also would need any bypass that we may
> implement.

I agree. That's where SLAB_NO_REAP can be used? or rather, change the
name/documentation to mean something better.

OR, introduce smartness in cache_reap to break the loop earlier if we can
somehow dynamically recognise the cache is static.
-
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/