xfs
[Top] [All Lists]

Re: [PATCH 08/16] xfs: implement lazy removal for the dquot freelist

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 08/16] xfs: implement lazy removal for the dquot freelist
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Mon, 5 Dec 2011 03:38:52 -0500
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20111205043230.GO7046@dastard>
References: <20111128082722.604873274@xxxxxxxxxxxxxxxxxxxxxx> <20111128082837.638600213@xxxxxxxxxxxxxxxxxxxxxx> <20111205043230.GO7046@dastard>
User-agent: Mutt/1.5.21 (2010-09-15)
On Mon, Dec 05, 2011 at 03:32:31PM +1100, Dave Chinner wrote:
> > +           /*
> > +            * move the dquot to the front of the hashchain
> > +            */
> > +           list_move(&dqp->q_hashlist, &qh->qh_list);
> > +           trace_xfs_dqlookup_done(dqp);
> > +           *O_dqpp = dqp;
> > +           return 0;
> 
> Back when the inode cache used a hash, we found that this moving of
> the item to the front of the list actually slowed down lookups - the
> impact of dirtying cachelines (i.e. remote CPU cache invalidation)
> to move the item in the list was greater than the time saved during
> lookups. That was because that when there are no hash chain
> modifications taking place, then the frequently hit chains simply
> end up shared in all the cpu caches rather than being turfed out on
> every successful lookup on a different CPU....

Yes, I doubt having this is an overly good idea.  But instead of
spending more time on optimizing the cache I'd prefer getting the
patches to move to a tree in after another merge window or two.

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