Messages in this thread | | | Date | Thu, 23 Feb 2006 11:17:06 -0800 | From | Ravikiran G Thirumalai <> | Subject | Re: slab: Remove SLAB_NO_REAP option |
| |
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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |