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. _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs