On Fri, Feb 10, 2012 at 12:52:33PM +1100, Dave Chinner wrote: > On Thu, Feb 09, 2012 at 05:13:46PM -0600, Ben Myers wrote: > > On Thu, Feb 09, 2012 at 05:56:26PM -0500, Christoph Hellwig wrote: > > > On Thu, Feb 09, 2012 at 04:03:20PM -0600, Ben Myers wrote: > > > > > - > > > > > - return B_TRUE; > > > > > + while (!list_empty(&dispose_list)) { > > > > > + dqp = list_first_entry(&dispose_list, struct xfs_dquot, > > > > > + q_freelist); > > > > > + list_del_init(&dqp->q_freelist); > > > > > + xfs_qm_dqfree_one(dqp); > > > > > + } > > > > > +out: > > > > > + return (xfs_Gqm->qm_dqfrlist_cnt / 100) * sysctl_vfs_cache_pressure; > > > > > > > > return atomic_read(&xfs_Gqm->qm_totaldquots); > > > > > > > > This works well for me and seems to be closer to the shrinker interface > > > > as documented: > > > > > > It's pointless - we can only apply pressure to dquots that are on the > > > freelist. No amount of shaking will allow us to reclaim a referenced > > > dquot. > > > > Sure... then it should be: > > > > return atomic_read(&xfs_Gqm->qm_frlist_cnt); > > > > What is the value of the additional calculation? > > It's applying the user controllable vfs_cache_pressure setting to > the reclaim weight. That is, if the user wants to reclaim > inode/dentry/dquot slab caches faster than the page cache (i.e. > perfer data caching over metadata caching) or vice cersa, then the > change the sysctl value and shrinkers should then take that into > account.... Aha. Thanks for the explanation. It sounds like including sysclt_vfs_cache_pressure in this calculation is a good thing. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs