On Thu, Apr 22, 2010 at 12:42:47PM -0400, Christoph Hellwig wrote: > On Fri, Apr 23, 2010 at 02:38:01AM +1000, Nick Piggin wrote: > > I don't understand, it should be implemented like just all the other > > shrinkers AFAIKS. Like the dcache one that has to shrink multiple > > superblocks. There is absolutely no requirement for this API change > > to implement it in XFS. > > The dcache shrinker is an example for a complete mess. I don't know. It's not really caused by not registering multiple shrinkers. It seems to be caused more by the locking, which is not going away when you have multiple shrinkers. The XFS patch seems to be pinning the mount structure when it is registered, so it would have no such locking/refcounting problems using a private list AFAIKS. > > But the shrinker list *is* a global list. The downside of it in the way > > it was done in the XFS patch is that 1) it is much larger than a simple > > list head, and 2) not usable by anything other then the shrinker. > > It is an existing global list just made more useful. Whenever a driver > has muliple instances of pool that need shrinking this comes in useful, > it's not related to filesystems at all. I would say less useful, because shrinker structure cannot be used by anything but the shrinker, wheras a private list can be used by anything, including the applicable shrinker. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>