xfs
[Top] [All Lists]

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

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 1/7] xfs: use a normal shrinker for the dquot freelist
From: Ben Myers <bpm@xxxxxxx>
Date: Fri, 10 Feb 2012 10:48:17 -0600
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20120210015233.GF12836@dastard>
References: <20120201135719.202171828@xxxxxxxxxxxxxxxxxxxxxx> <20120201140039.011990931@xxxxxxxxxxxxxxxxxxxxxx> <20120209220320.GL7762@xxxxxxx> <20120209225626.GA844@xxxxxxxxxxxxx> <20120209231346.GM7762@xxxxxxx> <20120210015233.GF12836@dastard>
User-agent: Mutt/1.5.18 (2008-05-17)
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.

<Prev in Thread] Current Thread [Next in Thread>