xfs
[Top] [All Lists]

Re: [PATCH 00/10] remove xfsbufd

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH 00/10] remove xfsbufd
From: Christoph Hellwig <hch@xxxxxxxxxxxxx>
Date: Wed, 28 Mar 2012 11:10:41 -0400
Cc: Christoph Hellwig <hch@xxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <20120328005337.GH3592@dastard>
References: <20120327164400.967415009@xxxxxxxxxxxxxxxxxxxxxx> <20120328005337.GH3592@dastard>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Mar 28, 2012 at 11:53:37AM +1100, Dave Chinner wrote:
> in IO patterns and performance under heavy load here with this
> patch set. it doesn't however, reduce the buffer cache lookups all
> that much on such workloads - about 10% at most - as most of the
> lookups are common from the directory and inode buffer
> modifications. Here's a sample profile:

10% might not be extremly huge, but it's pretty significant.

> This shows that 50% of the lookups from the directory code, 25% from
> the inode btree lookups, 12% from mapping inodes, and 10% from
> reading the AGI buffer during inode allocation. 
> 
> You know, I suspect that we could avoid almost all those AGI buffer
> lookups by moving to a similar in-core log and flush technique that
> the inodes use. We've already got all the information in the struct
> xfs_perag - rearranging it to have a "in-core on disk" structures
> for the AGI, AGF and AGFL would make a lot of the "select an AG"
> code much simpler than having to read and modify the AG buffers
> directly. It might even be possible to do such a change without
> needing to change the on-disk journal format for them...
> 
> I think I'll put that on my list of stuff to do - right next to
> in-core unlinked inode lists....

Sounds fine.  A simple short-term fix might be to simply pin a reference
to the AGI buffers and add a pointer from struct xfs_perag to them.

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