Re: [PATCH] Per-superblock unused dentry LRU lists.

From: David Chinner
Date: Wed May 24 2006 - 01:47:06 EST


On Wed, May 24, 2006 at 06:23:09AM +0200, Arjan van de Ven wrote:
> On Wed, 2006-05-24 at 14:01 +1000, David Chinner wrote:
> > Yup, that is what the current code I've written will do. I just
> > wanted someting that worked over all superblocks to begin with.
> > It's not very smart, but improving it can be done incrementally.
>
> I think that if you say A you should say B, I mean, if you make the list
> per SB you probably just should do the step and make at least the
> counter per SB as well. That will also save in cacheline bounces I
> suppose... but more importantly you keep the counters next to the list.

But it doesn't remove the need for the global counter. The
dcache_lock is far more heavily contended so the counter cacheline
bouncing is lost in the noise here. No to mention the counter can
only be updated while holding the dcache_lock. Hence at this point,
adding per-sb counters is pure overhead unless the reclaim method
is made to use them.

> Which you'll also need to do any kind of scaling I suppose later on, so
> might as well keep the stats already.

The per-sb list improves scalability only by reducing the maximum
length of time the dcache_lock is held. Scalabilty for further
parallelism (and therefore better reclaim performance) is going to
require locking changes so that's when I'd expect the counters to
need changing. I don't want to over-optimise before we know what we
actually need to optimise...

Cheers,

Dave.
--
Dave Chinner
R&D Software Enginner
SGI Australian Software Group
-
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/