Re: [PATCH 1/7] xfs: use a normal shrinker for the dquot freelist

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux